GameButtonと呼ばれるユーザーコントロールがあり、その中にラベルがあります。フォームにユーザーコントロールを追加してクリックイベントを追加すると、カスタムボタンの背景をクリックしたときにトリガーされますが、ラベルのテキストは表示されません。ユーザーコントロールコードの中に一連のクリックイベントを追加しないでこれを修正するにはどうすればよいですか?コントロール内のテキストをクリックすると、ユーザーコントロールのクリックイベントが機能しません。
編集:UIフレームワーク:リサイズ
GameButtonと呼ばれるユーザーコントロールがあり、その中にラベルがあります。フォームにユーザーコントロールを追加してクリックイベントを追加すると、カスタムボタンの背景をクリックしたときにトリガーされますが、ラベルのテキストは表示されません。ユーザーコントロールコードの中に一連のクリックイベントを追加しないでこれを修正するにはどうすればよいですか?コントロール内のテキストをクリックすると、ユーザーコントロールのクリックイベントが機能しません。
編集:UIフレームワーク:リサイズ
私が正しくあなたを理解していた場合は、お使いのGameButtonのユーザーコントロールをクリックしたときにイベントを発生さではなく、ラベルがクリックされたときになります - あなたは両方をしたいです。これは、ラベル(コントロール)が背景の上にあるためです。したがって、クリックイベントでもラベルを登録する必要があります。これは、デザイナで手動で行うことも、ページ上の各コントロールに対してプログラムで行うこともできます。あなたは、ユーザーコントロール内のすべての制御を行いたい場合は
は、ユーザーコントロールのOnLoadイベントにこれを入れて、あなたはすべてのコントロールに同じクリックイベントを使用することができます。
foreach(Control c in this.Controls){
c.Click += new EventHandler(yourEvent_handler_click);
}
public void yourEvent_handler_click (object sender, EventArgs e){
//whatever you want your event handler to do
}
EDIT:最良の方法は、作成することですユーザーコントロールのイベントハンドラプロパティをクリックします。これにより、クリックイベントをユーザーコントロールに追加/削除するたびに、ユーザーコントロール内のすべてのコントロールに自動的に追加/削除されます。
public new event EventHandler Click {
add {
base.Click += value;
foreach (Control control in Controls) {
control.Click += value;
}
}
remove {
base.Click -= value;
foreach (Control control in Controls) {
control.Click -= value;
}
}
}
これは、別のpost通りである:
は、この情報がお役に立てば幸い!
あなたのラベルのプロパティが「Falseの場合、マウスイベントは、ユーザーコントロールで動作します "有効"。
UIフレームワーク(Winformsの、WPF、Webフォーム、MVC)を作る? –
申し訳ありませんが、 – Oztaco
をリサイズもタグを含む避けてください –