2011-10-25 21 views
5

我試圖在鼠標懸停時顯示禁用的文本框上的工具提示。我知道,因爲控制被禁用以下將不起作用:C#在禁用的文本框(表單)上顯示工具提示

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

我怎樣才能獲得工具提示通過禁用的控件上鼠標顯示?

非常感謝

回答

16

如果控件被禁用,MouseHover不會觸發。相反,你可以在窗體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

非常感謝! – tripbrock

+0

還有一個想法 - 這將如何應用於groupbox內的文本框? – tripbrock

+2

然後您應該簽署groupBox MouseMove Event並執行與表單 – Stecya

0

您也可以從工具箱中拖動設計工具提示對象拖到形式。 然後在代碼中,您只需調用SetToolTip()並將按鈕或文本框等傳遞給想要分配給的工具提示以及希望顯示的文本。

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

相同的操作。除非禁用了控件,否則您將看不到工具提示。這是他的問題的重點。 –