pravin9455 Ответов: 2

Столбцы по умолчанию для datagridview в классе


у меня есть datagridview с 5 столбцами, которые мне нужны на нескольких формах с одинаковой функциональностью.
я хочу создать элемент управления классом для datagriedview .

как добавить пять столбцов по умолчанию для datagridview при добавлении в форму. Ширина и высота работают нормально

я получаю ошибку на нижней строке
Me.Columns.Add(5)

Ошибка BC30311 значение типа 'Integer' не может быть преобразовано в 'DataGridViewColumn'.


Что я уже пробовал:

Public Class ClsDgvJournal
    Inherits DataGridView


   Public Sub New()
        Width = 50
        Height = 200
        Me.Columns.Add(5)
    End Sub

End Class

2 Ответов

Рейтинг:
1

CHill60

Вы можете добавить строки просто указав количество строк, которые вы хотите добавить, но столбцы вы должны сначала определить, прежде чем добавлять их диапазон.
Вот справочная документация DataGridViewColumnCollection.Метод AddRange(DataGridViewColumn []) (System.Окна.Формы) | Microsoft Docs[^]


pravin9455

я попробовал с решением 2 ниже кода, и он отлично работает, когда я помещаю эту datagrid в форму.

Но когда я запускаю форму, столбцы отображаются два раза, то есть 10 столбцов

ААА|ВВВ|ССС|ДДД|ЕЕЕ|ААА|ВВВ|ССС|ДДД|ЕЕЕ


Скрыть Код Скопировать
Публичный Класс ClsDgvJournal
Наследует DataGridView
Общественные Саб Новый()
Ширина = 500
Высота = 200
Dim Col1 = новый столбец DataGridViewTextBoxColumn с {.HeaderText = "AAA", .Name = "A"}
Дим Столбец Col2 = Новый Вариант Datagridviewtextboxcolumn С {.HeaderText = "ВВВ", .Наименование = "Б"}
Dim Col3 = новый столбец DataGridViewTextBoxColumn с {.HeaderText = "CCC", .Name = "C"}
Дим Col4 = Новый Вариант Datagridviewtextboxcolumn С {.HeaderText = "ДДД", .Наименование = "Д"}
Дим Col5 = Новый Вариант Datagridviewtextboxcolumn С {.HeaderText = "еее", .Наименование = "Е"}
Меня.Столбцы.AddRange({Col1, Col2, Col3, Col4, Col5})

Конец Подводной Лодки

End Класса

CHill60

У вас, должно быть, уже были эти столбцы в DataGridView... если вы пытаетесь настроить все столбцы, которые вы хотите, как это, то не забудьте использовать Me.Columns.Очистить сначала - см. DataGridViewColumnCollection.Ясный Метод (Система.Окна.Формы) | Microsoft Docs[^]
Но также посмотрите на решение 1 - Источник данных, вероятно, является лучшим способом продвижения вперед ... вы можете добавлять столбцы по мере необходимости в таблицу данных Добавление столбцов в таблицу данных | Microsoft Docs[^] и просто установите DGVs, чтобы иметь этот datatable в качестве источника данных

pravin9455

я просто добавил элемент управления datagridview в форму и запустил тест .Ничего не буду делать .

когда я добавляю элемент управления в форму он показывает только пять столбцов

когда я запускаю его, он показывает десять столбцов

CHill60

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

pravin9455

я использую эту datagrid для добавления новой строки данных в таблицу sql, а не для отображения данных.

поскольку я хочу эту datagrid на нескольких формах стараясь избежать создания столбцов каждый раз когда я добавляю datagrid на новую форму создавая элемент управления классом со столбцами по умолчанию

CHill60

"я использую эту datagrid для добавления новой строки данных в таблицу sql, а не для отображения данных." Если вам не нужно отображать данные, то не используйте элемент управления пользовательским интерфейсом! Просто используйте DataTable

Рейтинг:
0

OriginalGriff

колонка.Метод Add позволяет добавить фактический столбец в DGV, а не указывать нужное количество столбцов. Если вы подумаете об этом, это имеет смысл, потому что столбец - это больше, чем просто черное пространство-это дескриптор того, что содержит столбец, и должен, по крайней мере, иметь строку для заголовка и строку для имени доступа: Класс DataGridViewColumnCollection (System.Окна.Формы) | Microsoft Docs[^]
Коллекция столбцов-это схема таблицы, которая управляет отображением данных в строках.

Самый простой способ сохранить их все одинаковыми-это использовать одни и те же данные: установите свойство DataSource DGV, и оно извлечет из него схему, и вам больше не нужно будет добавлять столбцы.