Как я могу сделать 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;
}