Как сделать ComboBox недоступным для редактирования в .NET? - PullRequest
194 голосов
/ 17 сентября 2008

Я хочу иметь «только для выбора» ComboBox, который предоставляет список элементов, из которых пользователь может выбирать. Печатание должно быть отключено в текстовой части элемента управления ComboBox.

Мое первоначальное приближение к этому оказалось слишком сложным, ошибочным предложением захватить событие KeyPress.

Ответы [ 5 ]

359 голосов
/ 17 сентября 2008

Чтобы сделать текстовую часть ComboBox недоступной для редактирования, установите для свойства DropDownStyle значение "DropDownList". ComboBox теперь в основном только для выбора для пользователя. Вы можете сделать это в конструкторе Visual Studio или в C # следующим образом:

stateComboBox.DropDownStyle = ComboBoxStyle.DropDownList;

Ссылка на документацию для свойства ComboBox DropDownStyle в MSDN.

61 голосов
/ 24 сентября 2014

Чтобы добавить ссылку на графический интерфейс Visual Studio, вы можете найти опции DropDownStyle в Свойствах выбранного ComboBox:

enter image description here

, который автоматически добавит строку, упомянутую в первом ответе, в Form.Designer.cs InitializeComponent(), например:

this.comboBoxBatch.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
30 голосов
/ 05 сентября 2012

Оставайтесь в вашем ComboBox и ищите свойство DropDropStyle в окне свойств, а затем выберите DropDownList .

2 голосов
/ 03 марта 2016

COMBOBOXID.DropDownStyle = ComboBoxStyle.DropDownList;

1 голос
/ 16 января 2017

Чтобы продолжить отображение данных на входе после выбора, сделайте так:

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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...