C# 如何创建对键盘输入完全无响应的CheckedListBox WinForm控件?
我尝试创建一个定制的CheckedListBox并重写OnKeyUp、OnKeyPress、OnKeyDown和OnPreviewKeyDown方法,但我无法实现我想要实现的目标 现在发生的基本情况是,如果用户在CheckedListBox具有焦点的情况下按下一个键,则所选项目将发生更改。例如,如果用户按下向上或向下键,则选中CheckedListBox中的下一个/上一个项目。如果用户按“A”,则选择以字母“A”开头的第一项 我希望CheckedListBox的行为方式使其对按键完全没有反应(但仍然对鼠标单击有反应)C# 如何创建对键盘输入完全无响应的CheckedListBox WinForm控件?,c#,.net,winforms,checkedlistbox,C#,.net,Winforms,Checkedlistbox,我尝试创建一个定制的CheckedListBox并重写OnKeyUp、OnKeyPress、OnKeyDown和OnPreviewKeyDown方法,但我无法实现我想要实现的目标 现在发生的基本情况是,如果用户在CheckedListBox具有焦点的情况下按下一个键,则所选项目将发生更改。例如,如果用户按下向上或向下键,则选中CheckedListBox中的下一个/上一个项目。如果用户按“A”,则选择以字母“A”开头的第一项 我希望CheckedListBox的行为方式使其对按键完全没有反应(但
有人能告诉我如何做到这一点吗?我认为可以通过继承CheckedListBox并重写其返回true的方法来实现这一点。这将忽略所有命令 我将尝试一种解决方案,并报告:) 更新: 它起作用了。 我使用的代码:
using System.Windows.Forms;
public class CheckedListBoxIgnoreKeyboard : CheckedListBox
{
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
return true;
}
}
控件需要重新生成才能显示在工具箱中。是否尝试将KeyDown事件用于此控件
e.SuppressKeyPress = true;
看来,在我这方面工作@JohnSmith:我刚刚测试了它,当我按下按钮响应控件中某个元素的第一个字母时,什么也没发生。我为错误信息道歉。我在KeyUp事件处理程序中有代码,这会把事情搞砸。