簡體   English   中英

C#表單UserControl OnClick事件

[英]C# Form UserControl OnClick events

我已經為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");
}

但是,當我運行該程序時,控制台永遠不會輸出“ Click”。

在MSDN上檢查此鏈接 :這是一個簡單的事件教程,您應該能夠使其適應您的方案。

乍一看,您可能缺少的是活動的代表。

嘗試這個

private void MobCreatorForm_Load(object sender, EventArgs e)
{
    CustomEvent_Handler(null,null);
}

private void CustomEvent_Handler(object sender, EventArgs e)
{
     Console.WriteLine("Click");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM