2016-08-23 3 views
-4

Моя конечная цель - сделать Combobox недоступным для редактирования. В настоящее время, когда пользователь делает любой выбор, ComboBox показывает выбор и выделяет его, поэтому пользователь может щелкнуть правой кнопкой мыши и вырезать и удалить текст, который появляется. Я добавил метод keyDown, который запрещает пользователю использовать команду ctrl + c, ctrl + v и delete. Но Пользователь все еще может изменить выделенный текст, используя правые кнопки «вырезать», «скопировать» и «вставить». Как я могу запретить пользователю изменять текущий выбор?Отключить контекстное меню в ComboBox в C#

+4

Если элемент управления на самом деле не является ComboBox, тогда почему ваш вопрос о ComboBox? –

+1

Что такое 'ComboGrid'? Это не стандартный компонент WinForms AFAIK. Имеет ли он документацию? – Blorgbeard

+0

Я также хотел бы знать, что такое 'ComboGrid', это сторонний элемент управления? –

ответ

0

Конечная цель - сделать Combobox недоступным для редактирования.

Вы можете подписаться на KeyDown событие и установить SuppressKeyPress истину для всех остальных, кроме Ctrl+c действий и создать новый ContextMenu отключить поведение по умолчанию все.

comboBox2.KeyDown += comboBox2_KeyDown; 
comboBox2.ContextMenu = new ContextMenu(); //disable right click 

void comboBox2_KeyDown(object sender, KeyEventArgs e) 
{ 
     if (!(e.Control && e.KeyCode == Keys.C)) 
     { 
      e.SuppressKeyPress = true; 
     } 
} 
+1

Что это значит, чтобы отключить его правой кнопкой мыши? – Blorgbeard

+0

В конечном счете OP хочет отключить все изменения, поэтому он может использовать 'SuppressKeyPress' для отключения всех изменений. –

+0

'Keypress' <> mousebuttons ... – Codexer

Смежные вопросы