关于c#:如何使ComboBox在.NET中不可编辑?

How can I make a ComboBox non-editable in .NET?

我想要一个"仅选择" ComboBox,该列表提供项目列表供用户选择。 在ComboBox控件的文本部分中应禁用键入。

我最初对此进行了搜索,结果发现了一个过于复杂,误导性的建议来捕获KeyPress事件。


若要使ComboBox的文本部分不可编辑,请将DropDownStyle属性设置为" DropDownList"。 现在,ComboBox基本上只为用户选择。 您可以在Visual Studio设计器中或在C#中执行以下操作:

1
stateComboBox.DropDownStyle = ComboBoxStyle.DropDownList;

链接到MSDN上ComboBox DropDownStyle属性的文档。


若要添加Visual Studio GUI引用,可以在所选ComboBox的"属性"下找到DropDownStyle选项:

enter image description here

它将自动将第一个答案中提到的行添加到Form.Designer.cs InitializeComponent(),如下所示:

1
this.comboBoxBatch.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;


停留在ComboBox上,从属性窗口中搜索DropDropStyle属性,然后选择DropDownList。


COMBOBOXID.DropDownStyle = ComboBoxStyle.DropDownList;


要在选择后继续在输入中显示数据,请执行以下操作:

1
2
3
4
5
6
7
8
9
10
11
12
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;
}


推荐阅读