簡體   English   中英

將自定義控件中的事件動態添加到表單中

[英]Raising event from custom control added dynamically to the form

我有一個自定義控件,可以多次添加到窗體。 在同一表單上可以有多次出現此自定義控件。 用戶添加和刪除這些控件。 用戶可以右鍵單擊自定義控件內的某個控件來顯示菜單。

從此菜單中選擇項目時,應在表單上引發事件。 我做了一個自定義事件,並意識到如果控件是動態添加的,它就無法使用,因為表單不知道它。 我無法添加一個引用不存在的控件的事件處理程序。 是否有其他方法可以從自定義控件上提升表單上的事件,而不需要表單來知道它? 順便說一句,我的自定義控件被添加到FlowLayoutPanel。 謝謝您的幫助!

您只需在添加控件時在代碼中連接事件處理程序,例如

MyButton.Click += ButonClickEventHandler;
Page.Controls.Add(MyButton)

同意Ben - 否則,有一些混亂的方法(取決於你的控件如何設置)。 例如INotifyPropertChanged Inerface或通過Windows API消息傳遞(和監聽器) - 但除非你有一個非常奇怪的設置,然后如Ben所說,只需在添加控件時添加一個處理程序。 您始終可以使用通用回調方法並使用自定義事件參數來標識觸發它的方法。

暫無
暫無

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

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