-1
在C#中,我創建了一個繼承自UserControl的自定義控件,並將一個按鈕btnInTrayMap添加到自定義控件中。 然後我將自定義控件添加到主窗體。主窗體有另一個按鈕用於比較他們的行爲。 我觀察到的是主窗體上的按鈕在點擊時工作正常。但是,單擊時,駐留在自定義控件中的按鈕btnInTrayMap根本沒有響應。如何使自定義控件中的按鈕觸發onClick事件並使其在自定義控件所在的主窗體中處理?
我有自定義控制按鈕下面的代碼:
public partial class TrayMap : UserControl
{
public TrayMap()
{
InitializeComponent();
}
public event EventHandler MyCustomClickEvent;
protected virtual void OnMyCustomClickEvent(object sender, EventArgs e)
{
if (MyCustomClickEvent != null)
MyCustomClickEvent(this, e);
}
private void btnInTrayMap_Click(object sender, EventArgs e)
{
OnMyCustomClickEvent(sender, EventArgs.Empty);
}
}
我相信TrayMap.designer.cs btnTrayMap.Click的事件處理可能造成的問題:
this.btnInTrayMap.Click += new System.EventHandler(this.btnInTrayMap_Click);
在主表中,我有以下代碼:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnInForm_Click(object sender, EventArgs e)
{
MessageBox.Show("Test Button In Form", "btnInForm Button Clicked", MessageBoxButtons.OK);
}
public void MyCustomClickEvent(object sender, EventArgs e)
{
Button button = sender as Button;
MessageBox.Show("Test Button In TrayMap", button.Text + " Button Clicked", MessageBoxButtons.OK);
}
}
我想知道如何o設置事件委派,使得當單擊按鈕btnInTrayMap時,主窗體中的MyCustomClickEvent方法將被執行。 謝謝。
您是否已經在主窗體中註冊了'MyCustomClickEvent'? –
如何在主窗體中註冊MyCustomClickEvent? – user3599926
請舉例說明。謝謝。 – user3599926