2009-07-01 68 views
9

我有我的Windows窗體上的自定義用戶控件。該控件上有幾個標籤。用戶控制單擊 - Windows窗體

我將在我的表單上動態顯示這些控件的數組,這些控件將包含不同的數據位。

我想要做的是知道當我點擊它時選擇了哪個用戶控件。

當我點擊用戶控件上的空白區域時,這種方式有效,但是,如果我點擊用戶控件上的任何標籤,它將無法識別用戶控件的點擊。

有關我如何完全控制點擊的想法,即使點擊了控件上的標籤?

如果此問題不清楚,或者您需要更多信息,請發表評論。

我正在做這個在c#中。

謝謝!

回答

11

用戶控件的單擊事件在用戶控件上單擊另一個控件時不會觸發。您需要手動綁定每個元素的點擊事件。您可以在用戶控件的代碼隱藏一個簡單的循環做到這一點:

foreach (Control control in Controls) 
{ 
    // I am assuming MyUserControl_Click handles the click event of the user control. 
    control.Click += MyUserControl_Click; 
} 

這段代碼workd後,點擊用戶控件上的任何控制時MyUserControl_Click將閃光。

+0

太棒了!這完全有幫助。謝謝一堆! – CodeLikeBeaker 2009-07-02 00:18:59

0
foreach (Control c in this.Controls) 
    { 
     c.Click += new EventHandler(SameAsForm_Click); 
    } 

請記住,這不會在groupboxes,面板等的‘SameAsForm_Click’-EventHandler添加標籤clickevents。