Как отобразить подсказку, когда фокус находится в определенном текстовом поле?
для текстового поля я хочу немедленно отобразить всплывающую подсказку, когда фокус находится в текстовом поле, и оставаться там в течение всего фокуса - не только когда мышь парит над текстовым полем.
Как я могу это сделать?
5 ответов
на Enter
и Leave
события, вероятно, полезны здесь и показывают его с длительностью 0, чтобы сохранить его там.
private ToolTip tt;
private void textBox1_Enter(object sender, EventArgs e) {
tt = new ToolTip();
tt.InitialDelay = 0;
tt.IsBalloon = true;
tt.Show(string.Empty, textBox1);
tt.Show("I need help", textBox1, 0);
}
private void textBox1_Leave(object sender, EventArgs e) {
tt.Dispose();
}
Примечание: вызов Show(...)
метод дважды, как в моем примере, заставит "указатель" правильно указывать на элемент управления.
протестировали, имена событий:
private void textbox_Enter(object sender, EventArgs e)
{
toolTip1.Show("your tip here", textbox);
}
private void textbox_Leave(object sender, EventArgs e)
{
toolTip1.Hide(textbox);
}
tooltip-это элемент управления, который необходимо добавить из toolbox.
используя mouse hover
и mouse leave
событий
private void textBox1_MouseHover(object sender, EventArgs e)
{
toolTip1.Show("your tip here", textBox2);
}
private void textBox1_MouseLeave(object sender, EventArgs e)
{
toolTip1.Hide(textBox2);
}
>
Windows Forms
public partial class FormWindow : Form
{
//Constructor
public FormWindow()
{
txtUrl.Text = "Enter text here";
txtUrl.ForeColor = Color.Gray;
txtUrl.GotFocus += TxtUrl_GotFocus;
txtUrl.LostFocus += TxtUrl_LostFocus;
}
private void TxtUrl_GotFocus(object sender, EventArgs e)
{
txtUrl.Text = "";
txtUrl.ForeColor = Color.Black;
}
private void TxtUrl_LostFocus(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(txtUrl.Text))
{
txtUrl.Text = "Enter text here";
txtUrl.ForeColor = Color.Gray;
}
}
}
используйте систему.Окна.Формы.Всплывающая подсказка и показать его в textbox события gotfocus событие и скрыть его в LostFocus событие:
void textBox_GotFocus(object sender, EventArgs e)
{
toolTip.Show("your tip", textBox);
}
void textBox_LostFocus(object sender, EventArgs e)
{
toolTip.Hide(textBox);
}