我可以禁用键盘输入到特定控件吗?
是否可以禁用键盘输入到控件?例如一个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