Только для чтения ComboBox в WinForms - PullRequest
22 голосов
/ 02 октября 2008

Я пишу графический интерфейс в C #, Visual Studio 2008, используя Designer и WinForms. У меня есть элемент управления ComboBox, и я бы хотел, чтобы он позволял только выбирать из предоставленных опций, а не принимать введенную пользователем строку. Похоже, у него нет свойства ReadOnly, и его отключение ухудшает читаемость элемента управления (а также запрещает выбор пользователя).

Ответы [ 6 ]

50 голосов
/ 02 октября 2008

Установить для DropDownStyle значение "DropDownList"

6 голосов
/ 02 октября 2008

Установите для свойства ComboBox.DropDownStyle значение ComboBoxStyle.DropDownList.

3 голосов
/ 28 декабря 2012

Еще один простой способ сделать это.

private void combobox1_KeyPress(object sender, KeyPressEventArgs e)
{
    e.Handled = true;
}
2 голосов
/ 02 октября 2008

Используйте код, подобный следующему, чтобы установить разрешенные опции и только эти опции.

comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
comboBox1.Items.AddRange(new object[] {
    "One",
    "Two",
    "Three",
    "Four"});
1 голос
/ 02 октября 2008

Попробуйте использовать DropDownListbox

0 голосов
/ 08 июня 2017

Мое требование: как только пользователь вводит данные через поле со списком, они не могут изменить значение перед его отправкой. Они могут читать только это значение.

Согласно моему требованию я делаю следующие вещи.

1) Получить ввод от пользователя через поле со списком.
2) Скопировать значение комбинированного поля в текстовое поле (которое доступно только для чтения и невидимо).
3) Ложная видимость поля со списком.
4) Истинная видимость текстового поля только для чтения.

Сделайте это с событиями.

...