2011-10-25 57 views
5

マウスオーバー時に無効なテキストボックスにツールチップを表示しようとしています。私はコントロールが無効になっているので、次の動作しません:C#無効なテキストボックスにツールチップを表示する(フォーム)

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

私は無効なコントロールの上にマウスで表示するようにツールチップを取得することはできますか?

多くのお礼ありがとうございます。

答えて

16

MouseHoverは制御が無効な場合は起動しません。代わりに、あなたはテキストボックス

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

もう一つの考え方 - これはグループボックス内のテキストボックスにどのように適用されますか? – tripbrock

+2

次に、groupBox MouseMoveイベントにサインして、フォーム – Stecya

0

ます。また、フォームにデザイナーの[ツールボックス]からToolTipオブジェクトをドラッグできるかどうかを置くフォームMouseMoveイベントで確認することができます。 次に、コード内でSetToolTip()を呼び出し、ボタンやテキストボックスなどを渡して、ツールヒントに割り当てるテキストと表示するテキストを渡します。

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

と同じことを行う必要があります。コントロールが無効の場合を除き、ツールチップは表示されません。それが彼の質問のポイントです。 –

関連する問題