2017-04-25 46 views
0

我創建了一個名爲ucTextBox的usercontrol文本框,其中包含一個標籤,一個文本框和兩個按鈕。我把它放在我的表格中。自定義usercontrol上的MouseHover事件#

現在我想在我的表格中的每個ucTextBox,TextBoxMaskedTextBox上附加一個MouseHover事件。

我這樣做:

public void AttachHoverEvent(Control CTrl) 
     { 
      foreach (Control c in CTrl.Controls) 
      { 
       if (c is TextBox || c is MaskedTextBox) 
       { 
        c.MouseHover += new EventHandler(afficheDictionnaireChamp); 
        c.MouseLeave += new EventHandler(desafficheDictionnaireChamp); 
        continue; 
       } 
       if (c is ucTextBox) 
       { 
        c.MouseHover += new EventHandler(afficheDictionnaireChamp); 
        c.MouseLeave += new EventHandler(desafficheDictionnaireChamp); 
        continue; 
       } 
       if (c.HasChildren) 
       { 
        AttachHoverEvent(c); 
       } 
      } 
     } 

注:我把ucTextBox在其他條件把一個斷點,條件爲真。

我的代碼可以正確處理TextBoxMaskedTextBox但不要對我 ucTextBox(沒有發生)工作。

我嘗試在我的ucTextBox類補充一點:

private void txbValeur_MouseHover(object sender, EventArgs e) 
{ 
    if (this.MouseHover != null) 
     this.MouseHover(this, e); 
} 

這是我的目標事件功能:

public void afficheDictionnaireChamp(object sender, EventArgs e) 
     { 
      Dictionnaire dico = new Dictionnaire(); 
      Control snd = (Control)sender; 
      string table = dico.getNomTable(this.Name, snd.Name); 
      string champ = dico.getNomChamp(this.Name, snd.Name); 
      if (table != "" && champ != "") 
       Globals.FormMain.tslTable.Text = table + " - " + champ; 
      else 
       Globals.FormMain.tslTable.Text = ""; 
     } 

     public void desafficheDictionnaireChamp(object sender, EventArgs e) 
     { 
      Globals.FormMain.tslTable.Text = ""; 
     } 

如果有人有一個想法是哪裏的問題可以從?

在此先感謝!

托馬斯

回答

相關問題