イベントやデリゲートの操作に関して問題があります。私は非常によく似た質問を見ましたが、それでも実際の実装は私にはわかりません。ですから、私が知っているコードでそれを行うことによって、公開/カスタムイベントの作成/処理がどのように機能するかを最終的に理解できるように、より具体的に答えるときにお願いします。
私が持っているのは、User Control
単なるテキストボックスと、テキストボックスの値を使用してデータベースのレコードを変更するために必要なボタンです。私はこのコントロールを多くのフォームで使用しているので、使用しているエンティティを正確に把握し、それ自体のsaveメソッドを呼び出すことができるようにする必要があります。click
自分のボタンのイベントを使用して、現在のフォームのメソッドをUser Control
呼び出すことができれば、これらすべてを簡単に実行できます。Save()
これは私のユーザーコントロールです:
namespace UserControls.CommonControls
{
public delegate void ClickMe(string message);
public partial class ChangeCode : UserControl
{
public event ClickMe CustomControlClickMe;
public ChangeCode()
{
InitializeComponent();
}
private void btnChange_Click(object sender, EventArgs e)
{
if (CustomControlClickMe != null)
CustomControlClickMe("Hello");
//ToDo fill
//MessageBox.Show("To Do: Write the busieness logic.");
}
public void SetTextBoxMask(MaskedTextBox txtBox)
{
txtChange.Mask = txtBox.Mask;
}
}
}
必要なものを実装するために最後に試みたものを投稿します。
Click
これは、からのイベントを使用する必要があるフォームの1つでありUser Control
、より具体的にはConstructor
、私が正しく理解していれば、イベントをサブスクライブする必要がある場所があるためです。
public MaterialEdit()
{
InitializeComponent();
UserControls.CommonControls.ChangeCode. += new ClickMe(button2_Click);
}
UserControls.CommonControls.ChangeCode
-これは私が私User Control
の名前に到達する方法ChangeCode
です。