私の C# プログラムには、ラベルとボタンを持つカスタム コントロールがあります。ユーザーがボタンをクリックしたときに、カスタム コントロールの Click イベントをオーバーライドするようにコントロールを設定するにはどうすればよいですか?
質問する
4904 次
3 に答える
2
コントロールの OnClick() メソッドを呼び出すだけです。
private void button1_Click(object sender, EventArgs e) {
this.OnClick(e);
}
コントロールの Click イベントを発生させます。
于 2012-04-11T13:19:00.373 に答える
1
次のように記述できます。
public new event EventHandler Click {
add { button1.Click += value; }
remove { button1.Click -= value; }
}
于 2012-04-11T13:21:49.117 に答える
0
これを達成する方法を説明する完全な記事は次のとおりです。カスタムコントロールからカスタムイベントを公開する
以下は、ユーザーコントロールで使用されるドロップダウンのステップであり、ボタンに対して同じことを行う必要があるイベントを公開します。上記のリンクを読んだ後、より多くのアイデアが得られます
ステップ 1 : ユーザー コントロールの cs ファイルにイベントを登録する
public event EventHandler DrpChange;
ステップ 2: usercontrol cs ファイルで発生したイベントを処理するための仮想関数
public virtual void OnDropDownChange()
{
if (DrpChange != null)
{
this.DrpChange(this, EventArgs.Empty);
}
}
ステップ 3 : ASCX.CS ファイルのドロップダウンの変更イベントに登録する
protected void ddlDropDown_SelectedIndexChanged(object sender, EventArgs e)
{
this.OnDropDownChange();
}
手順 4: ページでユーザー コントロールを使用し、エクスポーズ カスタム イベント .Aspx ページを利用する
<uc1:commondropdowncontrol autopostback="true" drpchange="usrDrp_DrpChange" id="usrDrp" labletext="Country" runat="server">
</uc1:commondropdowncontrol></div>
</form>
于 2012-04-11T13:18:58.807 に答える