【发布时间】:2010-09-10 06:51:28
【问题描述】:
我想要一个“仅选择”ComboBox,它提供一个项目列表供用户选择。应在 ComboBox 控件的文本部分禁用键入。
我最初的谷歌搜索发现了一个过于复杂、误导性的建议来捕获KeyPress 事件。
【问题讨论】:
我想要一个“仅选择”ComboBox,它提供一个项目列表供用户选择。应在 ComboBox 控件的文本部分禁用键入。
我最初的谷歌搜索发现了一个过于复杂、误导性的建议来捕获KeyPress 事件。
【问题讨论】:
要使 ComboBox 的文本部分不可编辑,请将 DropDownStyle 属性设置为“DropDownList”。现在,ComboBox 对用户来说基本上是只选择的。您可以在 Visual Studio 设计器中执行此操作,也可以在 C# 中执行此操作,如下所示:
stateComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
链接到 MSDN 上 ComboBox DropDownStyle property 的文档。
【讨论】:
Text 属性,而是使用它来显示使用 ComboBox.SelectedIndex = -1; 的默认消息
要添加 Visual Studio GUI 引用,您可以在所选 ComboBox 的属性下找到 DropDownStyle 选项:
这会自动将第一个答案中提到的行添加到 Form.Designer.cs InitializeComponent(),如下所示:
this.comboBoxBatch.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
【讨论】:
留在您的 ComboBox 上并从属性窗口中搜索 DropDropStyle 属性,然后选择 DropDownList。
【讨论】:
COMBOBOXID.DropDownStyle = ComboBoxStyle.DropDownList;
【讨论】:
要在选择后继续在输入中显示数据,请执行以下操作:
VB.NET
Private Sub ComboBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ComboBox1.KeyPress
e.Handled = True
End Sub
C#
Private void ComboBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}
【讨论】:
Private 必须全部小写,即private。
对于 winforms .NET 将 DropDownStyle 从 Combobox 属性更改为 DropDownList
【讨论】: