2013-05-17 61 views
1

我已經將工具提示應用於C#中的文本框,以便文本框必須接受用戶的名稱。在工具提示中,我在文本框中鍵入只有字母表的說明,這是成功的。但是我想要的是當用戶開始鍵入他的名字或移動到另一個文本框時,使該工具提示消失。目前的編碼是;C#中的工具提示文本框#

ToolTip tt = new ToolTip(); 
    String message = "Trying"; 
    private void txtName_Enter(object sender, EventArgs e) 
    { 

     if (txtName.Text == String.Empty) 
     { 
      tt.Show(string.Empty, txtName, 0); 
      tt.Show(message, txtName, new Point(0, -2 * txtName.Height)); 
     } 
    } 

幫助?

+0

爲什麼不使用更方便的HTML5佔位符方式。它們與你的用例完美匹配。 – Saravanan

+0

set tt.ShowAlways = false; – 2013-05-17 15:50:42

回答

0

文本框上有一個事件叫TextChanged。只要控件的Text屬性發生更改,它就會觸發。鍵入字符確實會改變Text屬性並因此觸發該事件。

利用這些知識,你能儘快關閉該提示爲Text不再是空的,像這樣:

private void txtName_TextChanged(object sender, EventArgs e) 
{ 
    var ctl = (Control) sender; // sender is a control 
    if (!String.IsNullOrEmpty(ctl.Text)) 
    { 
     tt.SetToolTip(ctl, String.Empty); 
    } 
} 

注意,此實現一般可以使用,由您希望有這種行爲的任何控制。