1

私の C# プログラムには、ラベルとボタンを持つカスタム コントロールがあります。ユーザーがボタンをクリックしたときに、カスタム コントロールの Click イベントをオーバーライドするようにコントロールを設定するにはどうすればよいですか?

4

3 に答える 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 に答える