Как запретить писать в combobox c
у меня есть форма в C#, которая использует ComboBox . Как запретить пользователю вручную вводить текст в ComboBox в C#?
Я хочу, чтобы B C был единственным вариантом.
9 ответов
просто установите комбо в качестве выпадающего списка:
Я считаю, что вы хотите установить DropDownStyle в DropDownList.
Вы можете добавить e.Handled = true в случае нажатия клавиши:
в окне свойств элемента управления сделайте DropDownStyle равной DropDownList.
зачем тогда использовать ComboBox?
C# имеет элемент управления списка. Технически разница ComboBox в Listbox заключается в том, что ComboBox может получать ввод, поэтому, если это не тот элемент управления, который вам нужен, я предлагаю вам использовать ListBox
Как предотвратить ввод вручную в ComboBox в C #
У меня есть форма на C #, в которой используется ComboBox . Как запретить пользователю вручную вводить текст в ComboBox в C #?
Я хочу, чтобы ABC были единственными вариантами.
задан 10 марта ’12, 17:03
5 ответы
Просто установите свою комбинацию как DropDownList:
ответ дан 10 мар ’12, в 17:03
Разве при этом я не могу ввести текст «Выбрать элемент» по умолчанию? — Демодав
Просто добавьте this.comboBoxType.SelectedIndex = 0; чтобы установить «по умолчанию» первым элементом в конце блока кода выше. — КейзерС
Я считаю, что вы хотите установить DropDownStyle в DropDownList.
Кроме того, вы можете сделать это из конструктора WinForms, выбрав элемент управления, перейдя в окно «Свойства» и изменив свойство «DropDownStyle» на «DropDownList».
ответ дан 16 окт ’19, 06:10
Вы можете подавить обработку нажатия клавиши, добавив e.Handled = true к событию KeyPress элемента управления:
ответ дан 16 окт ’19, 06:10

Вы все еще можете щелкнуть правой кнопкой мыши выделенный текст в поле со списком и нажать «Вырезать», вуаля, текст исчез — Аджех
Даже вы можете удалить персонажа. — Сушил Джадхав
Мне нравится сохранять возможность вставлять что-то вручную, но ограничивать выбранные элементы тем, что есть в списке. Я бы добавил это событие в ComboBox. Пока вы получаете SelectedItem, а не Text, вы получаете правильные предопределенные элементы; а, б и в.
Создан 17 июля ’18, 13:07

Зачем тогда использовать ComboBox?
В C # есть элемент управления под названием Список. Технически разница между ComboBox и Listbox заключается в том, что ComboBox может получать ввод, поэтому, если это не тот элемент управления, который вам нужен, я предлагаю вам использовать ListBox
Руководство по использованию Listbox здесь: C # ListBox
ответ дан 09 мар ’15, в 02:03

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками c# string combobox or задайте свой вопрос.
How to disable editing of elements in combobox for c#?
I have some elements in a ComboBox (WinForms with C#). I want their content to be static so that a user cannot change the values inside when the application is ran. I also do not want the user adding new values to the ComboBox
4 Answers 4
Use the ComboStyle property:
This is another method I use because changing DropDownSyle to DropDownList makes it look 3D and sometimes its just plain ugly.
You can prevent user input by handling the KeyPress event of the ComboBox like this.
Yow can change the DropDownStyle in properties to DropDownList. This will not show the TextBox for filter.

(Screenshot provided by FUSION CHA0S.)
I tried ComboBox1_KeyPress but it allows to delete the character & you can also use copy paste command. My DropDownStyle is set to DropDownList but still no use. So I did below step to avoid combobox text editing.
Below code handles delete & backspace key. And also disables combination with control key (e.g. ctr+C or ctr+X)
In form load use below line to disable right click on combobox control to avoid cut/paste via mouse click.
Как запретить писать в combobox c
Элемент управления System.Windows.Forms.ComboBox позволяет запомнить в себе список текстовых элементов, и предоставить выбор одного из элементов для пользователя.
Неочевидно, что основное поведение ComboBox зависит от свойства DropDownStyle. Имеется 3 варианта на выбор:
| Simple | Текстовое поле ввода, в котором может быть отображен один элемент из списка ComboBox.Items. Выпадающий список отключен, пользователю выбрать элемент нельзя, однако программно это сделать можно. Окно ComboBox в этом режиме работает как простое однострочное текстовое окошко ввода, так что пользователь может отредактировать текст текущего элемента. | |
| DropDown (по умолчанию) |
Пользователь может выбрать любой элемент ComboBox.Items с помощью выпадающего списка. Кроме того, разрешено редактирование текста текущего элемента списка. | |
| DropDownList | Стандартное поведение выпадающего списка. Пользователь может выбрать любой элемент ComboBox.Items из выпадающего списка. Редактирование текущего элемента запрещено. |
Элементы в списке программно доступны через свойство ComboBox.Items. Количество элементов в списке можно получить через ComboBox.Items.Count. Добавлять элементы можно методом ComboBox.Items.Add, удалять методами Remove и RemoveAt. Текущий отображаемый элемент Items можно программно поменять через значение свойства SelectedIndex.
[Ответы на часто задаваемые вопросы по ComboBox (FAQ)]
Q01. Как запретить (отключить) редактирование элемента в окне ComboBox?
A01. Поменяйте свойство DropDownStyle на DropDownList.
Q02. Как разрешить редактирование элемента в окне ComboBox?
A02. Поменяйте свойство DropDownStyle на DropDown. Это поведение ComboBox по умолчанию.
Q03. При запуске программы в окне ComboBox не отображен ни один элемент. Как сделать, чтобы был виден/выбран нужный элемент из списка Items?
A03. Присвойте свойству SelectedIndex нужное значение, соответствующее номеру элемента в списке Items. Элементы нумеруются начиная с нуля. Например, чтобы отобразить первый элемент в списке, нужно SelectedIndex присвоить значение 0.
Похожие публикации:
- Amd audio coprocessor что это
- Cinnamon settings daemon xrandr что это
- Dm contract fines что это
- Как открыть порт 465 smtp
Как запретить писать в combobox c
Элемент управления System.Windows.Forms.ComboBox позволяет запомнить в себе список текстовых элементов, и предоставить выбор одного из элементов для пользователя.
Неочевидно, что основное поведение ComboBox зависит от свойства DropDownStyle. Имеется 3 варианта на выбор:
| Simple | Текстовое поле ввода, в котором может быть отображен один элемент из списка ComboBox.Items. Выпадающий список отключен, пользователю выбрать элемент нельзя, однако программно это сделать можно. Окно ComboBox в этом режиме работает как простое однострочное текстовое окошко ввода, так что пользователь может отредактировать текст текущего элемента. | |
| DropDown (по умолчанию) |
Пользователь может выбрать любой элемент ComboBox.Items с помощью выпадающего списка. Кроме того, разрешено редактирование текста текущего элемента списка. | |
| DropDownList | Стандартное поведение выпадающего списка. Пользователь может выбрать любой элемент ComboBox.Items из выпадающего списка. Редактирование текущего элемента запрещено. |
Элементы в списке программно доступны через свойство ComboBox.Items. Количество элементов в списке можно получить через ComboBox.Items.Count. Добавлять элементы можно методом ComboBox.Items.Add, удалять методами Remove и RemoveAt. Текущий отображаемый элемент Items можно программно поменять через значение свойства SelectedIndex.
[Ответы на часто задаваемые вопросы по ComboBox (FAQ)]
Q01. Как запретить (отключить) редактирование элемента в окне ComboBox?
A01. Поменяйте свойство DropDownStyle на DropDownList.
Q02. Как разрешить редактирование элемента в окне ComboBox?
A02. Поменяйте свойство DropDownStyle на DropDown. Это поведение ComboBox по умолчанию.
Q03. При запуске программы в окне ComboBox не отображен ни один элемент. Как сделать, чтобы был виден/выбран нужный элемент из списка Items?
A03. Присвойте свойству SelectedIndex нужное значение, соответствующее номеру элемента в списке Items. Элементы нумеруются начиная с нуля. Например, чтобы отобразить первый элемент в списке, нужно SelectedIndex присвоить значение 0.
Как запретить писать в combobox c
Здравствуйте, zagzig, Вы писали:
Z>Подскажите пожалуйста, как запретить редактировние строки в текстовом поле ComboBox?
А использование стиля CBS_DROPDOWNLIST не подходит?
ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
| От: | Drago | |
| Дата: | 07.06.05 08:07 | |
| Оценка: | 2 (1) | |
Здравствуйте, zagzig, Вы писали:
Z>Подскажите пожалуйста, как запретить редактировние строки в текстовом поле ComboBox?
установи
| От: | Кирпа В.А. | |
| Дата: | 07.06.05 08:19 | |
| Оценка: | 2 (1) | |
Здравствуйте, Drago, Вы писали:
D>Здравствуйте, zagzig, Вы писали:
Z>>Подскажите пожалуйста, как запретить редактировние строки в текстовом поле ComboBox?
D>установи
На WinAPI поменять стиль комбобокса на CBS_DROPLIST без его пересоздания не получится
Это только на Дельфи
| От: | Drago |
| Дата: | 07.06.05 08:57 |
| Оценка: |
Здравствуйте, Кирпа В.А., Вы писали:
КВА>На WinAPI поменять стиль комбобокса на CBS_DROPLIST без его пересоздания не получится
КВА>Это только на Дельфи
согласен. но ключевые слова — Style и DropDownList? разве нет?
| От: | zagzig |
| Дата: | 07.06.05 10:23 |
| Оценка: |
| От: | Drago |
| Дата: | 07.06.05 10:36 |
| Оценка: |
| От: | BuHHunyx |
| Дата: | 07.06.05 14:59 |
| Оценка: |
Здравствуйте, zagzig, Вы писали:
Z>Спасибо,DropDownList — то что доктор прописал!
Z>Но возникает трабл: SendMessage(GetDlgItem(hwnd,IDC_COMBO), WM_SETTEXT,0,(LPARAM)str) не добавляет в поле static значение. Как исправить?
CB_INSERTSTRING, индекс строки в CB_SETCURSEL
| От: | Ignoramus |
| Дата: | 07.06.05 20:51 |
| Оценка: |
Здравствуйте, zagzig, Вы писали:
Z>Спасибо,DropDownList — то что доктор прописал!
Z>Но возникает трабл: SendMessage(GetDlgItem(hwnd,IDC_COMBO), WM_SETTEXT,0,(LPARAM)str) не добавляет в поле static значение. Как исправить?
Дело в том, что при стиле CBS_DROPLIST в комбо-боксе просто нет поля «static» (на самом деле это поле едит). Т.е. превращается из «комбо-бокса», т.е. комбинации дроп-дауна с едитом в чистый дроп-даун.
Чтобы отобразить что-то в поле бывшего едита имхо нужно юзать custom draw items. Трудоемко, конечно, но что поделаешь.
Как запретить писать в combobox c
Как в компоненте ComboBox просто запретить редактирование
и изменение строк ?
Типа как ReadOnly в компонентах TEdit
Если поставить стиль csDropDownList то user может
изменить находящееся в нем текущее значение, на другую строку.
если поставить Enabled = false, то все Ок, за исключением
того что текст становиться серым и плохо читаемым.
Можно разместить ComboBox например на Panel
и ее сделать недоступной, но и этот вариант не подходит,
на форме их много и вперемешку те, что можно изменять
и те, что нельзя.
Группа: Модератор
Сообщений: 2412
этот вопрос уже задавался в форуме. цитирую ответ.
Запрет на ввод своего значения в Combobox

Когда пользователь выбирает элемент из списка в Combobox, он может ввести и свое значение, выглядит это так: Можно ли запретить пользователю вводить что-то свое, чтобы он вибирал только доступные варианты?
Отслеживать
13.7k 12 12 золотых знаков 43 43 серебряных знака 75 75 бронзовых знаков
задан 19 мая 2019 в 13:36
Максим Сорокин Максим Сорокин
129 1 1 серебряный знак 12 12 бронзовых знаков
19 мая 2019 в 13:51
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
ComboBox.DropDownStyle = ComboBoxStyle.DropDownList
Спасибо юзеру tym32167 !
Отслеживать
ответ дан 19 мая 2019 в 15:45
Максим Сорокин Максим Сорокин
129 1 1 серебряный знак 12 12 бронзовых знаков
- c#
- winforms
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.12.7.2316
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как запретить ввод собственного значения в ComboBox?
Как сделать, чтобы варианты можно было выбирать только из предложенных, без возможности редактирования?
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как запретить scroll в ComboBox
Незнаю, возможно это или нет, но может можено как то запретить скрол на раскрывающемся списке? то.
Как запретить выделение в ComboBox?
Здравствуйте! Подскажите, пожалуйста, как убрать/запретить выделение текста( может название.

Как сделать чтобы при выборе в combobox , менялись значения в других combobox?
Есть два combobox. Как их сделать зависимыми друг от друга. Что бы при выборе одного combobox.

C# Как сделать чтобы при выборе в combobox , менялись значения в других combobox?
Приветствую коллеги. Только встал на путь программирования и столкнулся с дилеммой. Есть форма.
![]()
17438 / 12830 / 3361
Регистрация: 17.09.2011
Сообщений: 21,108

Сообщение было отмечено как решение
Решение
comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;