簡體   English   中英

如何獲得用戶控件以偵聽Winform中另一個控件的事件?

[英]How can I get my user control to listen to another control's event in winform?

我試圖在系統中做一個收藏夾控件,所以我有一個包含一些ComboBoxs,TextBoxes和按鈕的窗體,並且在我的代碼中,我向ComboBoxs,TextChange inTextBoxes和Click to按鈕添加了諸如SelectedValueChanged事件之類的嫉妒對象。

在每個控件旁邊,我都有一個面板控件,要向其中添加我創建的用戶控件的一個實例(ToolStripButton)以顯示收藏夾。

為了收集收藏夾的數據,我需要監聽表單中控件的事件(例如,監聽ComboBox的SelectedValueChanged事件並將此值保存到收藏夾)。

有沒有辦法可以從“收藏夾”用戶控件中監聽這些事件?

為了收聽某些事件,您應該訂閱該事件。 您可以在收藏夾用戶控件中訂閱事件(您需要將引發事件的控件傳遞到用戶控件中):

// code for you FavoritesUserControl
public void Subscribe(ListBox listBox)
{
    listBox.SelectedValueChanged += ListBoxSelectedValueChanged;
}

private void ListBoxSelectedValueChanged(object sender, EventArgs e)
{
    // do what you want
}    

用法:

favorites1.Subscribe(listbox1);

或者,您可以在表單上訂閱事件,並在事件處理程序中通知用戶控件:

// code for your Form
private void ListBoxSelectedValueChanged(object sender, EventArgs e)
{
    favorites1.DoSomething();
} 

暫無
暫無

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

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