0
ucTextBox
という名前のユーザーコントロールのテキストボックスを作成しました。ラベル、テキストボックス、および2つのボタンが含まれています。私はそれを私の形で多く入れました。カスタムコントロールのMouseHoverイベント#
今度は、ucTextBox
、TextBox
、MaskedTextBox
の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
を入れて、条件が真であるが。
私のコードはTextBox
とMaskedTextBox
で正しく動作しますが、私の 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 = "";
}
誰かが問題からできるアイデアを得た場合は?
ありがとうございます!
トーマス
「透明」は何も変更しないでくださいし、背景を制御し設定するようにしてください –