Методы добавления текста-заполнителя в текстовое поле в C# WinForms

Чтобы установить текст-заполнитель для элемента управления TextBox в C# WinForms, вы можете использовать любой из следующих методов:

  1. Используйте свойство 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;
    }
}
  1. Создайте собственный элемент управления 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));
                }
            }
        }
    }
}
  1. Используйте стороннюю библиотеку или пакет NuGet, который предоставляет элемент управления TextBox со встроенной поддержкой заполнителей. Примеры таких библиотек: Bunifu UI, Syncfusion и DevExpress.