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