Intereting Posts
Проекты с открытым исходным кодом с проверками хорошего качества Как показать «Загрузка. , , пожалуйста, подождите “в Winforms для длинной формы загрузки? C #: диапазон возврата урожая / коллекция Возвращает задание, нарушающее принцип CQS? Как загрузить локальный файл html в виде веб-представления xamrian Передача нескольких параметров из url в html.actionlink как получить дочерние элементы элемента WPF Скрыть исходный код приложения windows c # DateTime ToString (“dd / MM / yyyy”) возвращает dd.MM.yyyy Могу ли я передать аргументы базовому конструктору из конструктора по умолчанию производного classа? Bundle Minification не работает при публикации приложения WebForms Как повторно использовать выражение для одного объекта в другом выражении Обратный инжиниринг String.GetHashCode Как добавить липкие заметки, вставить текст в курсор, .. Аннотации в существующем файле PDF с помощью iTextSharp с C #? Как я могу перебирать каждый дочерний узел в файле XML?

Добавление ComboBox в datagridview для определенной строки

У меня есть требование показать выпадающий список в одну строку из нескольких строк. Мои dataGridView имеет 2 столбца (параметр и значение), и я добавляю 3 строки динамически в код. Для всех трех строк текстовые тексты являются фиксированными и не могут быть изменены пользователем. Для первой строки текст параметра – «prm1», а текст значения будет выбран из выпадающего списка. другие 2 строки, текст значения будет текстовым полем, введенным пользователем. Я попытался выполнить поиск, но не смог найти ответ. Пожалуйста, помогите мне здесь.

Можно заменить определенные ячейки DataGridView во время выполнения – например, в вашей ситуации, когда вы хотите, чтобы в ячейке вы указывали combobox, вы можете иметь DataGridViewTextBoxColumn и заменять ячейку в первой строке. Что-то вроде этого:

 void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { List books = new List(); books.Add(new Book { bookID = 1, bookName = "Test-Driven Development (Kent Beck)" }); books.Add(new Book { bookID = 2, bookName = "Refactoring (Martin Fowler)" }); books.Add(new Book { bookID = 3, bookName = "Code Complete: 2nd Edition (Steve McConnell)" }); DataGridViewComboBoxCell c = new DataGridViewComboBoxCell(); c.DataSource = books; c.Value = 1; c.ValueMember = "bookID"; c.DisplayMember = "bookName"; dataGridView1.Rows[0].Cells[0] = c; } 

Вы также можете сделать это другим способом и заменить определенную ячейку combobox из DataGridViewComboBoxColumn с помощью DataGridViewTextBoxCell.


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

Пожалуйста, рассмотрите возможность добавления столбца ComboBox в сетку с помощью контекстного меню контекстного меню « Редактировать столбцы …» сетки в Designer Design . Чтобы добавить столбец, потребуется щелкнуть по кнопке « Добавить» диалогового windows « Редактировать столбцы » и затем выбрать « Тип = DataGridViewComboBoxColumn как показано ниже:

введите описание изображения здесь

Обратите внимание : для заполнения выпадающего списка ComboBox вам также потребуется использовать свойство Items или DataSource для столбца.