Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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# 在Windows窗体中禁用组合框的键盘输入_C#_Winforms_Combobox - Fatal编程技术网

C# 在Windows窗体中禁用组合框的键盘输入

C# 在Windows窗体中禁用组合框的键盘输入,c#,winforms,combobox,C#,Winforms,Combobox,我正在开发一个WinForms应用程序,它使用一个组合框来选择类别。此应用程序用于带有虚拟键盘的触摸屏。这些设备也将在室外阳光下使用。这使得一些颜色看起来融合在一起 问题: 如何创建不显示为禁用的非文本可编辑组合框 下拉式:下拉式 问题:虚拟键盘显示 此时将显示组合框,可以编辑文本。当用户在触摸屏设备上单击此按钮时,会显示列表,但会显示虚拟键盘。然后,键盘显示在UI的顶部。(他们每次都必须关闭它。) DropDownStyle:DropDownList 问题:组合框显示为禁用状态 除了组合框现在

我正在开发一个WinForms应用程序,它使用一个组合框来选择类别。此应用程序用于带有虚拟键盘的触摸屏。这些设备也将在室外阳光下使用。这使得一些颜色看起来融合在一起

问题: 如何创建不显示为禁用的非文本可编辑组合框

下拉式:下拉式 问题:虚拟键盘显示

此时将显示组合框,可以编辑文本。当用户在触摸屏设备上单击此按钮时,会显示列表,但会显示虚拟键盘。然后,键盘显示在UI的顶部。(他们每次都必须关闭它。)

DropDownStyle:DropDownList 问题:组合框显示为禁用状态

除了组合框现在是灰色的之外,这种样式几乎完全符合我的要求。如前所述,设备在阳光下使用,灰色使其看起来不可用

DrawMode
添加到
OwnerDrawFixed
时,我可以使用
ComboBox.BackColor
更改组合框的颜色,但是当
DrawMode
OwnerDrawFixed
时,所有与组合框的显示绑定都会丢失。组合框是使用以下方法设置的:

comboBox.DisplayMember = "Text";
comboBox.ValueMember = "Value";
下拉式:简单 问题:这个根本不起作用。(甚至连下拉列表都没有)


免责声明:图像中的向下箭头按钮不是我的主意。我试图删除它们,但被告知要将它们重新添加。

你可以这样做吗?
private void comboBox\u KeyPress(object sender,KeyPressEventArgs e){e.KeyChar=(char)Keys.None;}
看起来很简单。@DJKRAZE:这并不能阻止触摸屏键盘的显示,它只是禁用输入。当窗体加载时,默认情况下组合框也会聚焦。
DropDownStyle:DropDownList
flatsyle:Flat
@valter这更近了一步,但是我失去了控件的边框。目前我正在考虑构建一个自定义组合框,因为WinForms组合框似乎不是很灵活。如果你费心做一个定制的组合框,为什么不试试简单一点的呢。在组合框顶部放置一个
标签
(只有下拉列表可见),并处理绘制所需图像和文本的
enter、leave、down
事件(以匹配组合框图像)。