2017-04-25 6 views
0

ucTextBoxという名前のユーザーコントロールのテキストボックスを作成しました。ラベル、テキストボックス、および2つのボタンが含まれています。私はそれを私の形で多く入れました。カスタムコントロールのMouseHoverイベント#

今度は、ucTextBoxTextBoxMaskedTextBoxの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 = ""; 
     } 

誰かが問題からできるアイデアを得た場合は?

ありがとうございます!

トーマス

答えて

0

は、あなたの親が

+0

「透明」は何も変更しないでくださいし、背景を制御し設定するようにしてください –

関連する問題