2012-04-30 40 views
2

我在UserControl設計時間內添加了一個Panel。在用戶控件中的Panel中輸入事件不會觸發

然後,我將此控件添加到窗體。

我想在控件具有焦點時顯示焦點虛線邊框。

不幸的是,面板上的Enter事件從未觸發。當我單擊用戶控件本身時,我只會發生火災。

延長這個問題。我如何將用戶控件中的控件的事件轉發到基本用戶控件?來自Hans Passant的評論this問題說默認事件被轉發給他們的直接父母。我沒有改變任何控件的屬性。我究竟做錯了什麼?是否有一個顯而易見的屬性,我需要在每個控件上進行更改,以便強制它轉發未處理的事件?

我使用DevExpress控件,但是這種行爲在windows WinForms控件中是相同的。

編輯:據我所知,面板可能無法得到重點。如果這是真的,我該如何將每個鼠標事件轉發給父控件?

+0

不應該只是使用UserControl的'Enter'和'Leave'事件來使其內部的面板無效? – LarsTech

+0

如果我點擊面板,UserControl的Enter事件不會觸發。這是我的問題 – Odys

+2

[Panel not getting focus]的可能重複(http://stackoverflow.com/questions/3562235/panel-not-getting-focus) –

回答

2

基於您的評論,從你的用戶控件中,處理面板的MouseDown事件並將焦點設置於母公司控制:)在面板的鼠標點擊事件

public UserControl1() { 
    InitializeComponent(); 
    panel1.MouseDown += new MouseEventHandler(panel1_MouseDown); 
} 

void panel1_MouseDown(object sender, MouseEventArgs e) { 
    if (!this.Focused) 
    this.Focus(); 
} 
0

使用panel1.Select(你會能夠觸發panel1.Enter和panel1.Leave

相關問題