是否可以禁用鍵盤輸入到控件?例如一個ListView
?我怎麼做?我嘗試覆蓋KeyUp
KeyDown
事件,但顯然這不是方式?我可以禁用鍵盤輸入到特定控件嗎?
IsEnabled
是一個很好的解決方案,但我只希望禁用鍵盤交互並保持鼠標交互完好。
是否可以禁用鍵盤輸入到控件?例如一個ListView
?我怎麼做?我嘗試覆蓋KeyUp
KeyDown
事件,但顯然這不是方式?我可以禁用鍵盤輸入到特定控件嗎?
IsEnabled
是一個很好的解決方案,但我只希望禁用鍵盤交互並保持鼠標交互完好。
處理KeyDown
事件太晚,但你可以處理PreviewKeyDown事件,並應該給你你正在尋找的行爲:
private void MyListBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
e.Handled = true;
}
這就是WebControl.Enabled = false;
阻止它響應用戶輸入的目的。
編輯:現在問題已經改變,禁用控件不再是一個解決方案。不過,我認爲一個控制,響應鼠標點擊不鍵盤是越野車,不是每個人都喜歡使用鼠標。
我應用了一個減號點,導致此方法將禁用該控件,並且解決方案 – 2010-02-08 11:52:47
的KeyDown通常也適用於我,如果你在它下面:
e.Handled = true;
e.SuppressKeyPress = true;
與實際應用(非數字字符禁止輸入)一個更完整的例子:http://cccontrols.codeplex.com/SourceControl/changeset/view/34146#611536
約翰使得不過好點。任何原因你想要禁用與Control
交互但不設置Enabled
= false
?
編輯:我只注意到了WPF標籤。不敢肯定我的回答了,因爲我是一個WPF憎恨;-)
無法訪問e.SuppressKeyPress:/ – Maciek 2010-02-08 10:21:55
親愛maciek,你需要使用的onkeydown事件唯一可以做的THIG只是做
private void txtInput_KeyDown(object sender, KeyEventArgs e)
{
e.Handled = true; // user can input
e.Handled = false; // user cannot input
}
我試了一下,但沒有成功爲了我。 – Maciek 2010-02-09 08:20:35
嘿Maciek,你不應該同時使用上面的處理代碼,正如我在評論中提到的那樣,你必須使用這些代碼 – 2010-02-10 05:16:07
所以,你只是想懲罰鍵盤用戶? – 2010-02-08 20:18:00
的確 - 我知道。我正在尋找僅鼠標 – Maciek 2010-02-09 06:23:39