Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何创建对键盘输入完全无响应的CheckedListBox WinForm控件?_C#_.net_Winforms_Checkedlistbox - Fatal编程技术网

C# 如何创建对键盘输入完全无响应的CheckedListBox WinForm控件?

C# 如何创建对键盘输入完全无响应的CheckedListBox WinForm控件?,c#,.net,winforms,checkedlistbox,C#,.net,Winforms,Checkedlistbox,我尝试创建一个定制的CheckedListBox并重写OnKeyUp、OnKeyPress、OnKeyDown和OnPreviewKeyDown方法,但我无法实现我想要实现的目标 现在发生的基本情况是,如果用户在CheckedListBox具有焦点的情况下按下一个键,则所选项目将发生更改。例如,如果用户按下向上或向下键,则选中CheckedListBox中的下一个/上一个项目。如果用户按“A”,则选择以字母“A”开头的第一项 我希望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事件处理程序中有代码,这会把事情搞砸。