Как я могу сделать ComboBox недоступным для редактирования в .NET?
Я хочу иметь только "select-only" ComboBox
, который предоставляет список элементов для выбора пользователем. В текстовой части элемента управления ComboBox
должен быть отключен ввод текста.
Моя первоначальная ошибка в этом оказалась слишком сложным, ошибочным предложением захватить событие KeyPress
.
Ответы
Ответ 1
Чтобы часть текста ComboBox не редактировалась, установите для свойства DropDownStyle значение "DropDownList". ComboBox теперь по сути выбирается только для пользователя. Вы можете сделать это в дизайнере Visual Studio или на С#, например:
stateComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
Ссылка на документацию для Свойство ComboBox DropDownStyle в MSDN.
Ответ 2
Чтобы добавить ссылку на графический интерфейс Visual Studio, вы можете найти опции DropDownStyle
в разделе Свойства выбранного ComboBox:
![enter image description here]()
Что автоматически добавит строку, указанную в первом ответе Form.Designer.cs InitializeComponent()
, например:
this.comboBoxBatch.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
Ответ 3
Оставайтесь на своем ComboBox и выполните поиск свойства DropDropStyle в окне свойств, а затем выберите DropDownList.
Ответ 4
COMBOBOXID.DropDownStyle = ComboBoxStyle.DropDownList;
Ответ 5
Чтобы продолжить отображение данных на входе после выбора, сделайте следующее:
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;
}