Чтобы добавить заполнитель в текстовое поле приложения Windows Form, вы можете использовать один из следующих методов:
Метод 1. Используйте событие TextChanged
- Задайте исходный текст текстового поля в качестве текста-заполнителя.
- Подписаться на событие TextChanged текстового поля.
- В обработчике событий проверьте, пусто ли текстовое поле. Если это так, установите текст обратно в текст-заполнитель.
Пример:
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(textBox1.Text))
{
textBox1.Text = "Enter your text here...";
}
}
Метод 2: используйте события Enter и Leave
- Задайте исходный текст текстового поля в качестве текста-заполнителя.
- Подписаться на события Enter и Leave текстового поля.
- В обработчике события Enter проверьте, соответствует ли текст текстового поля тексту заполнителя. Если да, очистите текст текстового поля.
- В обработчике события Leave проверьте, пусто ли текстовое поле. Если это так, установите текст обратно в текст-заполнитель.
Пример:
private void textBox1_Enter(object sender, EventArgs e)
{
if (textBox1.Text == "Enter your text here...")
{
textBox1.Clear();
}
}
private void textBox1_Leave(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(textBox1.Text))
{
textBox1.Text = "Enter your text here...";
}
}
Метод 3. Используйте собственный элемент управления TextBox
- Создайте собственный элемент управления TextBox, унаследовав его от класса TextBox.
- Переопределить метод OnPaint, чтобы отрисовывать текст-заполнитель, когда текстовое поле пусто.
- Обработка события MouseClick для удаления текста-заполнителя при щелчке по текстовому полю.
Пример:
public class PlaceholderTextBox : TextBox
{
private string placeholderText = "Enter your text here...";
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
if (string.IsNullOrEmpty(Text) && !Focused)
{
using (var brush = new SolidBrush(ForeColor))
{
e.Graphics.DrawString(placeholderText, Font, brush, ClientRectangle);
}
}
}
protected override void OnMouseClick(MouseEventArgs e)
{
base.OnMouseClick(e);
if (string.IsNullOrEmpty(Text))
{
Text = string.Empty;
}
}
}
Чтобы использовать пользовательский элемент управления TextBox, необходимо добавить его в дизайн формы Windows или создать программным способом.