2016-05-24 2 views
1

Я хочу создать объект, представляющий ячейку в DataGridView, содержащий метку, поле со списком и текстовое поле, и заполнить ячейки в моей таблице этими разными значениями.Добавление нескольких, разных элементов управления в DataGridView

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

Я прочитал это - DataGridView Control (Windows Forms)

Но только не могу понять его ..

Так есть ли способ, чтобы сделать этот вид объекта?

+0

Вы хотите иметь все эти элементы управления в одной ячейке? Они показывают/редактируют одно и то же значение? –

+0

, например, на ярлыке должно отображаться имя, в поле со списком должно отображаться список имен для выбора, а текстовое поле будет содержать номер телефона. всякий раз, когда пользователь выбирает имя из combobox, метка и текстовое поле будут меняться в соответствии с именем, которое он выбрал (из базы данных, конечно). и да все в одной ячейке –

+0

Непонятно, каково ваше требование. Но если вам нужно показать «Label», «TextBox» и «ComboBox» в «DataGridView», вам не нужно создавать собственный тип столбца. Вы можете использовать readonly 'DataGridViewTextBoxColumn' как метку, использовать' DataGridViewTextBoxColumn' как текстовое поле и 'DataGridViewComboBoxColumn' как combobox. –

ответ

1

Вы можете попробовать сделать пользовательский элемент управления с необходимым управлением и поместить его внутри DGV клетки

+0

ха-ха простой и блестящий. can not belive Я не думал об этом, спасибо! –

+0

^^ нет проблем - есть много примеров того, как это сделать на стеке, удачи! – ChenChi

1

Если я правильно понимаю, что вы хотите, чтобы ваши клетки, чтобы показать имя и телефон. Поскольку каждая ячейка может иметь одно значение, вы должны обернуть имя и телефон в один объект (например, контакт), а свойство связанного источника данных должно быть такого типа.

Вам действительно не нужны все три элемента управления для отображения в ячейке. если в режиме редактирования вам не нужны два ярлыка (один для имени и один для телефона). В режиме редактирования вам нужны комбобокс и ярлык (или текстовое поле, если вы хотите, чтобы телефон был доступен для редактирования), но это может быть сложно.

Затем вы хотите создать пользовательский DataGridViewCell, настраиваемый DataGridViewColumn и настраиваемый элемент управления.

Хотя вы можете добавить две метки в качестве дочерних элементов вашего пользовательского DataGridViewCell, гораздо проще просто переопределить Paint и нарисовать имя и телефон непосредственно на поверхности ячейки.

Пользовательское управление редактирования может быть любым элементом управления, реализующим интерфейс IDataGridViewEditingControl. Таким образом, это может быть составной элемент управления, содержащий поле со списком и метку (или текстовое поле). Композитный элемент управления должен редактировать объект Contact как единое целое.

Также пользовательский DataGridViewColumn отвечает за предоставление источника данных для выпадающей части элемента управления редактирования.

https://msdn.microsoft.com/en-us/library/7fb61s43(v=vs.110).aspx описывает, как создать пользовательскую ячейку и столбец.

https://msdn.microsoft.com/en-us/library/7tas5c80(v=vs.110).aspx описывает, как создать пользовательский элемент управления редактирования и как его создать из пользовательской ячейки.

+0

спасибо, что ответ на это очень полезно! –

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