2011-10-25 14 views
5

Sto cercando di ottenere un tooltip per visualizzare su un disabile testo nel corso di un mouse. Lo so perché il controllo è disabilitato il seguente non funziona:C# visualizzare la descrizione su disabile textbox (Form)

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

Come posso ottenere il tooltip per visualizzare su un mouse su di un controllo disattivato?

Molte grazie

risposta

16

MouseHover solito fuoco se il controllo è disattivato. Invece è possibile controllare in nell'evento Form MouseMove se si passa il testo

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

Grazie mille! – tripbrock

+0

Un altro pensiero: come dovrebbe essere applicato a una casella di testo all'interno di una casella di gruppo? – tripbrock

+2

quindi dovresti firmare per il GroupBox MouseMove Event e fare la stessa cosa del Form – Stecya

0

È anche possibile trascinare un oggetto ToolTip dalla Casella degli strumenti in Designer nel form. Quindi nel codice chiamate semplicemente SetToolTip() e passate il pulsante o la casella di testo ecc. A cui volete assegnare il suggerimento e il testo che volete che mostri.

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

Tranne quando il controllo è disabilitato non vedrai un suggerimento. Questo è il punto della sua domanda. –