C # Отображение всплывающей подсказки на отключенном текстовом поле (Форма) - PullRequest
5 голосов
/ 25 октября 2011

Я пытаюсь получить всплывающую подсказку, отображаемую в отключенном текстовом поле при наведении мыши. Я знаю, потому что элемент управления отключен, следующее не будет работать:

private void textBox5_MouseHover(object sender, EventArgs e)
{
       // My tooltip display code here
}

Как получить всплывающую подсказку, которая отображается при наведении мыши на отключенный элемент управления?

Большое спасибо

Ответы [ 2 ]

17 голосов
/ 25 октября 2011

MouseHover не будет срабатывать, если управление отключено. Вместо этого вы можете проверить в событии Form MouseMove, что вы наводите текстовое поле

    public Form1()
    {
        InitializeComponent();
        textBox1.Enabled = false;
        toolTip.InitialDelay = 0;
    }

    private ToolTip toolTip = new ToolTip();
    private bool isShown = false;

    private void Form1_MouseMove(object sender, MouseEventArgs e)
    {
        if(textBox1 == this.GetChildAtPoint(e.Location))
        {
            if(!isShown)
            {
                toolTip.Show("MyToolTip", this, e.Location);
                isShown = true;
            }
        }
        else
        {
            toolTip.Hide(textBox1);
            isShown = false;
        }
    }

enter image description here

0 голосов
/ 01 марта 2013

Вы также можете перетащить объект ToolTip из панели инструментов в конструкторе на форму.Затем в коде вы просто вызываете SetToolTip () и передаете кнопку или текстовое поле и т. Д. Вы хотите, чтобы подсказка была назначена, и текст, который вы хотите, чтобы он отображался.

myToolTip.SetToolTip(myTextBox, "You just hovered over myTextBox!");
...