Чтобы установить текст-заполнитель для элемента управления TextBox в C# WinForms, вы можете использовать любой из следующих методов:
- Используйте свойство
Text
элемента управленияTextBox
и обрабатывайте событияEnter
иLeave
для отображения и скрыть текст заполнителя соответственно. Вот пример:
private void textBox1_Enter(object sender, EventArgs e)
{
if (textBox1.Text == "Enter text here...")
{
textBox1.Text = "";
textBox1.ForeColor = Color.Black;
}
}
private void textBox1_Leave(object sender, EventArgs e)
{
if (textBox1.Text == "")
{
textBox1.Text = "Enter text here...";
textBox1.ForeColor = Color.Gray;
}
}
- Создайте собственный элемент управления TextBox, унаследовав его от класса
TextBox
и переопределив его методWndProc
для обработки сообщенияWM_PAINT
. Этот метод позволяет рисовать текст-заполнитель прямо на элементе управления. Вот пример:
public class PlaceholderTextBox : TextBox
{
private string placeholderText = "Enter text here...";
private bool showPlaceholder = true;
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
if (m.Msg == 0x000F) // WM_PAINT
{
if (showPlaceholder && string.IsNullOrEmpty(this.Text) && !this.Focused)
{
using (Graphics g = this.CreateGraphics())
{
g.DrawString(placeholderText, this.Font, Brushes.Gray, new PointF(0, 0));
}
}
}
}
}
- Используйте стороннюю библиотеку или пакет NuGet, который предоставляет элемент управления TextBox со встроенной поддержкой заполнителей. Примеры таких библиотек: Bunifu UI, Syncfusion и DevExpress.