8

ボタンを含むユーザー コントロールを作成しました。データベースからデータをフェッチした後、実行時にロードされるwinformでこのコントロールを使用しています。

ここで、そのボタンの Click イベントでデータテーブルから行を削除する必要があります。

問題は、フォームでそのイベントをどのようにキャプチャするかです。現在、そのユーザー コントロールの btn クリック イベント定義に含まれています。

4

3 に答える 3

21

ユーザー コントロール内で次の操作を行うことにより、独自のデリゲート イベントを作成できます。

public event UserControlClickHandler InnerButtonClick;
public delegate void UserControlClickHandler (object sender, EventArgs e);

以下を使用して、ハンドラーからイベントを呼び出します。

protected void YourButton_Click(object sender, EventArgs e)
{
   if (this.InnerButtonClick != null)
   {
      this.InnerButtonClick(sender, e);
   }
}

次に、次を使用してイベントにフックできます

UserControl.InnerButtonClick+= // Etc.
于 2010-05-27T10:13:12.490 に答える
6

新しいデリゲートを宣言する必要はありません。ユーザーコントロールで:

public class MyControl : UserControl
{
  public event EventHandler InnerButtonClick;
  public MyControl()
  {
    InitializeComponent();
    innerButton.Click += new EventHandler(innerButton_Click);
  }
  private void innerButton_Click(object sender, EventArgs e)
  {
    if (InnerButtonClick != null)
    {
      InnerButtonClick(this, e); // or possibly InnerButtonClick(innerButton, e); depending on what you want the sender to be
    }
  }
}
于 2012-04-12T16:55:56.933 に答える