Intereting Posts
Добавить интерактивные гиперссылки в RichTextBox без нового абзаца Правильный способ отсрочить запуск задачи Вызов универсального метода с переменной типа variable.ToString () vs. Convert.ToString (переменная) Получение SmtpClient для работы с самоподписанным сертификатом SSL Visual Studio 2010 Plug-in – добавление контекстного меню в окно редактора ключевое слово ‘ref’ и AppDomains Существуют ли какие-либо реализации мультимножества для .Net? Как связать свойство управления WPF только для чтения (например, ActualWidth), чтобы его значение было доступно в модели представления? Предотrotation нескольких экземпляров на сервере одинаковое имя пользователя Зачем мне частное поле, которое открывается через публичную собственность? Почему вызов ISet .Contains () компилирует, но генерирует исключение во время выполнения? Поддержка файловой системы для FindFirstFileEx, ограничение на каталоги Asp.net MVC – отображает частичный вид из области Взвешенный случайный выбор с использованием метода псевдонима Уолкера

Добавление 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 для столбца.