ボタンと同様に動作する Windows フォーム用のカスタム ユーザー コントロールを作成しました (このユーザー コントロールにデータを保存するため、ボタンだけを使用することは提案しないでください)。OnClick()
イベントを発生させる方法を見つけます。私はいくつかのチュートリアルをふるいにかけ、サイトでいくつかの同様の質問を見ましたが、イベントを発生させることができないようです.後者ではない)
私のカスタムcontrol.csでは、
namespace MobCreator {
public partial class MOBSample : UserControl {
public MOBSample() {
InitializeComponent();
}
protected override void OnMouseUp(MouseEventArgs e) {
this.BorderStyle = BorderStyle.FixedSingle;
base.OnMouseUp(e);
}
protected override void OnMouseDown(MouseEventArgs e) {
this.BorderStyle = BorderStyle.Fixed3D;
base.OnMouseDown(e);
}
public event EventHandler ButtonClick;
private void OnButtonClick(object sender, EventArgs e) {
// invoke UserControl event here
if (this.ButtonClick != null) this.OnButtonClick(sender, e);
}
}
}
そして私のform.csでは、
private void MobCreatorForm_Load(object sender, EventArgs e) {
UserControl1.ButtonClick += new EventHandler(this.CustomEvent_Handler);
}
private void CustomEvent_Handler(object sender, EventArgs e) {
Console.WriteLine("Click");
}
ただし、プログラムを実行すると、コンソールは「クリック」を出力しません。