我有一個usercontrol,其中包含一個FlowLayoutPanel
(自上而下流)與一堆單選按鈕。該控件暴露了一個CheckedChanged
事件,只要其中一個單選按鈕的檢查發生更改就會觸發該事件。箭頭鍵和更改控件的焦點掛起應用程序
我的表單包含usercontrol和一個文本框。我訂閱usercontrol的CheckedChanged
事件,並根據檢查哪個單選按鈕,我禁用文本框或將焦點放在文本框內。
當更改單選按鈕的檢查狀態時,所有這些都可以正常使用鼠標單擊。但是,使用箭頭鍵時,它將無限期地掛起。我不明白爲什麼差異。
下面是步驟來重現我看到的行爲:
創建一個用戶控件拖放一個
FlowLayoutPanel
控制,並設置其FlowDirection = TopDown
。然後將兩個單選按鈕添加到FlowLayoutPanel
。在用戶控件
public event EventHandler CheckedChanged { add { radioButton2.CheckedChanged += value; } remove { radioButton2.CheckedChanged -= value; } }
創建視窗表單提供的事件處理程序,並刪除上述的用戶控制。添加一個文本框並將
Enabled
設置爲False。訂閱用戶控件的CheckedChanged
事件如下private void userControl11_CheckedChanged(object sender, EventArgs e) { textBox1.Select(); }
運行。請注意,如果您使用鼠標在單選按鈕之間單擊,則可以正常工作;但如果使用上/下箭頭鍵,它會崩潰。
我打賭你的問題沒有包含足夠的信息來解決這個問題。你能做出最簡單的(最少的代碼行)測試用例來演示這個問題並在這裏添加它嗎? – Rytmis 2009-05-28 12:09:00