2009-07-11 2 views
0

В чем разница между нормальным полем со списком и полем со списком в datagrid?поле со списком в datagrid

Я хочу сказать, что я не могу дать свою ценность в combobox (в datagrid), но я могу дать (введите любое значение) в обычные комбо.

ответ

1

Элемент управления выпадающим списком имеет раскрывающийся список. Таким образом, вы можете вводить в него значения. Хотя столбец combobox DataGridView имеет свойство, заданное как DropDownList. Именно по этой причине вы не можете ввести его. Если вы хотите, чтобы ввести в него, вы можете сделать это, используя следующий код:

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { 
     if (e.Control.GetType() == typeof(DataGridViewComboBoxEditingControl)) { 
     DataGridViewComboBoxEditingControl edit = e.Control as DataGridViewComboBoxEditingControl; 
     edit.DropDownStyle = ComboBoxStyle.DropDown; 
     } 
    } 

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

+0

привет датский им не удалось захватить значение чувак !!! – srinivas

+0

В проверяющем событии editcontrol у него будет свойство текста отправителя. – danish

0
  • «нормальный» выпадающий или System.Windows.Forms.ComboBox является пользовательским элементом управления формами Windows, который используется для отображения нескольких значений из которых пользователь может выбрать ONE варианта. ComboBox.DropDownStyle, который имеет тип ComboBoxStyle Свойство Enumeration определяет, что поведение текстовой части поля со списком редактируется или нет.

  • Комбинированный квадрат данных "Data grid": System.Windows.Forms.DataGridViewComboBoxColumn класс, который Представляет столбец объектов DataGridViewComboBoxCell. Этот класс демонстрирует почти поведение «нормального» combobox, но иерархия классов (полученная из DataGridViewColumn) такова, что она может быть встроена в Datagrid.

0

Просмотрите источник, и вы заметите, что идентификатор элемента управления combobox GridView не является тем, что вы ожидаете. Это происходит потому, что он работает на сервере, и его идентификатор генерируется с использованием контейнера именования и т. Д. Если вы ссылаетесь на .NET-генерируемый идентификатор (тот, который вы видите в источнике), вы должны соответствующим образом манипулировать со списком GridView.

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

Просто догадка, но я надеюсь, что это помогает

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