Как запретить писать в combobox c
Перейти к содержимому

Как запретить писать в combobox c

  • автор:

Запрет на ввод своего значения в Combobox

можно ввести что угодно

Когда пользователь выбирает элемент из списка в Combobox, он может ввести и свое значение, выглядит это так: Можно ли запретить пользователю вводить что-то свое, чтобы он вибирал только доступные варианты?

Отслеживать

13.8k 12 12 золотых знаков 44 44 серебряных знака 77 77 бронзовых знаков

задан 19 мая 2019 в 13:36

Максим Сорокин Максим Сорокин

129 1 1 серебряный знак 13 13 бронзовых знаков

Как запретить ввод собственного значения в ComboBox?

Author24 — интернет-сервис помощи студентам

Как сделать, чтобы варианты можно было выбирать только из предложенных, без возможности редактирования?

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Как запретить scroll в ComboBox
Незнаю, возможно это или нет, но может можено как то запретить скрол на раскрывающемся списке? то.

Как запретить выделение в ComboBox?
Здравствуйте! Подскажите, пожалуйста, как убрать/запретить выделение текста( может название.

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

C# Как сделать чтобы при выборе в combobox , менялись значения в других combobox?
Приветствую коллеги. Только встал на путь программирования и столкнулся с дилеммой. Есть форма.

Эксперт .NET

17689 / 12874 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138

Лучший ответ

Сообщение было отмечено как решение

Решение

comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;

Класс CComboBox

Поле со списком состоит из поля списка в сочетании со статическим элементом управления или элементом управления редактирования. Часть списка элемента управления может отображаться в любое время или может отображаться только в том случае, если пользователь выбирает стрелку раскрывающегося списка рядом с элементом управления.

Выбранный в данный момент элемент (при наличии) в списке отображается в статическом или редактируемом элементе управления. Кроме того, если поле со списком имеет стиль раскрывающегося списка, пользователь может ввести начальный символ одного из элементов в списке, а поле списка, если отображается, выделите следующий элемент с этим начальным символом.

В следующей таблице сравниваются три стиля со списком.

Стиль Если отображается поле списка Статический или редактируемый элемент управления
Простой Всегда Изменить
Раскрывающийся список При удалении вниз Изменить
Раскрывающийся список При удалении вниз Статические

Объект можно создать CComboBox из шаблона диалогового окна или непосредственно в коде. В обоих случаях сначала вызовите конструктор CComboBox для создания CComboBox объекта, а затем вызовите Create функцию-член, чтобы создать элемент управления и присоединить его к объекту CComboBox .

Если вы хотите обрабатывать сообщения уведомлений Windows, отправленные полем со списком в родительский (как правило, класс, производный от CDialog ), добавьте запись карты сообщений и функцию-обработчик сообщений в родительский класс для каждого сообщения.

Каждая запись карты сообщений принимает следующую форму:

ON_Notification( id, memberFxn )

где id указывает идентификатор дочернего окна элемента управления со списком, отправляющий уведомление, и memberFxn является именем родительской функции-члена, записанной для обработки уведомления.

Прототип функции родительского объекта выглядит следующим образом:

afx_msg void memberFxn( );

Порядок отправки определенных уведомлений не может быть предсказан. В частности, CBN_SELCHANGE уведомление может возникать либо до, либо после CBN_CLOSEUP уведомления.

Возможные записи карты сообщений приведены ниже.

  • ON_CBN_CLOSEUP (Windows 3.1 и более поздних версий.) Список поля со списком закрыт. Это сообщение уведомления не отправляется для поля со списком с стилем CBS_SIMPLE .
  • ON_CBN_DBLCLK Пользователь дважды щелкает строку в списке поля со списком. Это сообщение уведомления отправляется только для поля со списком со стилем CBS_SIMPLE . Для поля со списком или CBS_DROPDOWNCBS_DROPDOWNLIST стиля двойной щелчок не может произойти, так как один щелчок скрывает поле списка.
  • ON_CBN_DROPDOWN Список поля со списком находится в раскрывающемся списке (быть видимым). Это сообщение уведомления может возникать только для поля со списком или стилем CBS_DROPDOWN CBS_DROPDOWNLIST .
  • ON_CBN_EDITCHANGE Пользователь сделал действие, которое могло изменить текст в части элемента управления редактированием поля со списком. CBN_EDITUPDATE В отличие от сообщения, это сообщение отправляется после обновления экрана Windows. Он не отправляется, если поле со списком CBS_DROPDOWNLIST имеет стиль.
  • ON_CBN_EDITUPDATE Часть элемента управления редактированием поля со списком будет отображать измененный текст. Это уведомление отправляется после того, как элемент управления отформатировал текст, но перед отображением текста. Он не отправляется, если поле со списком CBS_DROPDOWNLIST имеет стиль.
  • ON_CBN_ERRSPACE Поле со списком не может выделить достаточно памяти для выполнения определенного запроса.
  • ON_CBN_SELENDCANCEL (Windows 3.1 и более поздних версий.) Указывает, что выбор пользователя должен быть отменен. Пользователь щелкает элемент, а затем щелкает другое окно или элемент управления, чтобы скрыть поле со списком. Это уведомление отправляется перед уведомлением CBN_CLOSEUP , чтобы указать, что выбор пользователя должен игнорироваться. Сообщение CBN_SELENDCANCEL или CBN_SELENDOK уведомление отправляется, даже если CBN_CLOSEUP сообщение уведомления не отправляется (как в случае поля со списком с стилем CBS_SIMPLE ).
  • ON_CBN_SELENDOK Пользователь выбирает элемент, а затем нажимает клавишу ВВОД или щелкает клавишу СТРЕЛКА ВНИЗ, чтобы скрыть поле со списком поля со списком. Это уведомление отправляется перед сообщением, CBN_CLOSEUP чтобы указать, что выбор пользователя должен считаться допустимым. Сообщение CBN_SELENDCANCEL или CBN_SELENDOK уведомление отправляется, даже если CBN_CLOSEUP сообщение уведомления не отправляется (как в случае поля со списком с стилем CBS_SIMPLE ).
  • ON_CBN_KILLFOCUS Поле со списком теряет фокус ввода.
  • ON_CBN_SELCHANGE Выбор в списке поля со списком будет изменен в результате щелчка пользователя в поле списка или изменения выделения с помощью клавиш со стрелками. При обработке этого сообщения текст в элементе управления редактированием поля со списком можно получить только через GetLBText другую аналогичную функцию. GetWindowText нельзя использовать.
  • ON_CBN_SETFOCUS Поле со списком получает фокус ввода.

При создании CComboBox объекта в диалоговом окне (с помощью ресурса диалогового окна) CComboBox объект автоматически уничтожается, когда пользователь закрывает диалоговое окно.

Если вы внедряете CComboBox объект в другой объект окна, его не нужно уничтожить. При создании CComboBox объекта в стеке он автоматически уничтожается. Если вы создаете CComboBox объект в куче с помощью new функции, необходимо вызвать delete объект, чтобы уничтожить его при уничтожении поля со списком Windows.

Обратите внимание , что если вы хотите обрабатывать WM_KEYDOWN и WM_CHAR сообщения, необходимо подклассить элементы управления редактирования и списка поля со списком, наследовать классы и CEdit CListBox добавлять обработчики для этих сообщений в производные классы. Дополнительные сведения см. в разделе CWnd::SubclassWindow .

Как запретить редактирование ComboBox? C#

Свойство DropDownStyle указывает, всегда ли отображается список, или же он является раскрывающимся. Свойство DropDownStyle также указывает, можно ли редактировать текстовую часть. Доступные настройки и их действие см. в ComboBoxStyle. Не существует параметра, позволяющего всегда отображать список и запретить ввод нового значения. Чтобы отобразить список, в который нельзя добавить новые значения, воспользуйтесь элементом управления ListBox.

Остальные ответы

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *