поле со списком в датагрид - PullRequest
0 голосов
/ 11 июля 2009

В чем разница между обычным комбинированным списком и комбинированным списком в сетке данных?

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

Ответы [ 3 ]

1 голос
/ 11 июля 2009

Элемент управления со списком имеет свой раскрывающийся стиль. Таким образом, вы можете ввести значения в нем. В то время как столбец со списком 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 голосов
/ 11 июля 2009

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

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

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

0 голосов
/ 11 июля 2009
  • "Нормальный" комбинированный список или System.Windows.Forms.ComboBox - это пользовательский элемент управления Windows Form, который используется для отображения нескольких значений, из которых пользователь может выбрать ONE вариант. ComboBox.DropDownStyle типа ComboBoxStyle Свойство перечисления определяет поведение текстовой части поля со списком, редактируемое или нет.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...