簡體   English   中英

自定義控件WinForm的C#自定義事件

[英]C# Custom event for Custom Control WinForm

我已經搜索過了,有幾個答案,但是我不知道該怎么做。

我有一個帶有文本框和列表視圖的自定義控件。 當用戶開始在文本框中鍵入內容時,列表視圖將填充所有與鍵入的文本匹配的內容。(這是用戶的搜索框)。 用戶正在輸入客戶名稱以查找客戶。

我想要做的是,當用戶輸入客戶並選擇了客戶時,我需要將客戶名稱從自定義控件的文本框中傳遞到我的主項目中。

為此,我認為我需要一個自定義事件,當選擇一個客戶時,它將引發一個事件以通知主應用程序。

我該怎么做,謝謝。

您需要做三件事。

1.在自定義控件中定義事件(目前,未添加任何特殊事件參數)。

public event EventHandler CustomerSelected { get; set; }
private void OnCustomerSelected() {
    var customerSelected = CustomerSelected;
    if (customerSelected != null) {
        customerSelected(this, EventArgs.Empty);
    }
}

2.必要時觸發事件。 您可以通過在選擇客戶時調用OnCustomerSelected方法在自定義控件中執行此操作。

3.以您的主要形式處理事件。 您可以使用類似的方法來做到這一點(我使用過lambda,也可以定義一個事件處理程序方法,無論您喜歡什么)。

this.customerControl1.CustomerSelected += (s,e) => {
    // This runs when a customer is selected.
};

暫無
暫無

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

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