Как отобразить всплывающую подсказку, когда фокус находится в определенном текстовом поле? - PullRequest
9 голосов
/ 15 декабря 2011

Для текстового поля я хочу, чтобы всплывающая подсказка отображалась сразу, когда фокус находится на текстовом поле, и оставался там в течение всего времени фокусировки, а не только тогда, когда курсор мыши находится над текстовым полем.

enter image description here

Как я могу это сделать?

Ответы [ 5 ]

15 голосов
/ 15 декабря 2011

События 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(...) дважды, как вмой пример заставит указатель правильно указывать на элемент управления.

4 голосов
/ 22 июня 2016

протестировали, имена событий:

   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);

    } 

Подсказка - это элемент управления, который необходимо добавить из панели инструментов.

2 голосов
/ 09 августа 2016

с использованием 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);
    }

>

0 голосов
/ 31 июля 2018

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;
            }
        }
}
0 голосов
/ 15 декабря 2011

Используйте System.Windows.Forms.ToolTip и покажите его в текстовом поле GotFocus событие и скройте в LostFocus событие:

void textBox_GotFocus(object sender, EventArgs e)
{
    toolTip.Show("your tip", textBox);
}

void textBox_LostFocus(object sender, EventArgs e)
{
    toolTip.Hide(textBox);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...