2013-02-26 70 views
1

我來之後question。在我的CustomControl中,我想處理所有內部控件'MouseClick事件,然後爲customControl引發一個事件,所以我可以在每個使用該控件的項目中處理它。如何在UserControl中引發一個事件以便在另一個項目中在外部處理它?

private void UserControl1_Load(object sender, EventArgs e) 
{ 
    foreach (var control in Controls) 
    { 
     ((Control)control).MouseClick += UserControl1_Click; 

    } 
} 

private void UserControl1_Click(object sender, MouseEventArgs e) 
{ 
    // here I want to raise a MouseClick event for UserControl1? 
} 

我該如何解決這個問題? (我想這也許是喜歡當我們捕捉異常,然後再扔掉它到別的地方抓住它?)

回答

1

試試這個:

private void UserControl1_Click(object sender, MouseEventArgs e) 
{ 
    // Raise MouseClick event for this control 
    base.OnMouseClick(e); 
} 
1

簡單:

Public Event MouseClick(ByVal sender As Object, ByVal e As MouseEventArgs) 

Private Sub UserControl1_Click (object sender, MouseEventArgs e) 
    RaiseEvent MouseClick(sender, e) 
End Sub 

然後外面處理MouseClick事件。 (我把代碼放在Vb.Net中,因爲你在你的問題中標記了它,但很容易轉換它)。

相關問題