Как программно добавить столбец CheckBox в элемент управления RadGridView.Сообщение об ошибке: в коллекции существует столбец с тем же именем - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь добавить столбец CheckBox в элемент управления RadGridView, используя код.

Ниже приведен мой код:

Sub AddCheckColumnGrid()

    '  Dim chkSelection As New DataGridViewCheckBoxColumn // Microsoft Control
    Dim chkSelection As New GridViewCheckBoxColumn '// Telerik Control
    With chkSelection
        .HeaderText = "Check"
        .Name = "Check"
        .Width = 80
    End With

    gvDisplay.Columns.Insert(0, chkSelection)
End Sub

Форма с GridView отображается как DialogBox с помощьюкод ниже

.ShowDialog ()

Мой вызов: Когда я открываю форму в первый раз, она работает нормально.Когда я пытаюсь открыть его снова, я получаю сообщение об ошибке

В коллекции существует столбец с тем же именем.

Что я сделал до сих пор:

1) Я попробовал код с

Visual Studio по умолчанию DataGridView и DataGridViewCheckBoxColumn. Изображение ошибки

Microsoft DataGridView не выдает ошибку, но каждый раз, когда я открываю форму, в таблицу добавляется новый столбец проверки.Если я открою его 10 раз, будут добавлены 10 контрольных столбцов.Это не то, что я хочу.Независимо от того, сколько раз я его открываю, я хочу добавить только один столбец в сетку. Изображение

2) Я добавил:

gvDisplay.Columns.Clear ()

Я получил это предложение от Обновление RadGridView с программно добавленной кнопкой: столбец с тем же именем уже существует в коллекции

К сожалению, я не обрадовал меня :( Когда я открываю форму, только «Проверить»Показывает столбцы. Все столбцы из базы данных не отображаются. Проверьте Показать здесь

3) Я прочитал несколько ссылок на документацию Telerik, но я все еще не получаю ее.

Как исправить сообщение об ошибке?:

В коллекции существует столбец с тем же именем.

1 Ответ

0 голосов
/ 29 ноября 2018

Приведенный ниже код помог мне.

Я вставил вставку в состояние IF

If NOT gvDisplay.Columns.Contains("check") Then
gvDisplay.Columns.Insert(0, chkSelection)
End If
...