ボタンを含むユーザー コントロールを作成しました。データベースからデータをフェッチした後、実行時にロードされるwinformでこのコントロールを使用しています。
ここで、そのボタンの Click イベントでデータテーブルから行を削除する必要があります。
問題は、フォームでそのイベントをどのようにキャプチャするかです。現在、そのユーザー コントロールの btn クリック イベント定義に含まれています。
ボタンを含むユーザー コントロールを作成しました。データベースからデータをフェッチした後、実行時にロードされるwinformでこのコントロールを使用しています。
ここで、そのボタンの Click イベントでデータテーブルから行を削除する必要があります。
問題は、フォームでそのイベントをどのようにキャプチャするかです。現在、そのユーザー コントロールの btn クリック イベント定義に含まれています。
ユーザー コントロール内で次の操作を行うことにより、独自のデリゲート イベントを作成できます。
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.
新しいデリゲートを宣言する必要はありません。ユーザーコントロールで:
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
}
}
}