Добавление DataGridViewCheckBoxColumn

Я добавил несколько столбцов в DataGridView, как это через код.

dgvDocDisplay.ColumnCount = 22;
dgvDocDisplay.Columns[0].Name = "Tag";
dgvDocDisplay.Columns[1].Name = "[ ]";
dgvDocDisplay.Columns[2].Name = "#";
dgvDocDisplay.Columns[3].Name = "Type";
dgvDocDisplay.Columns[4].Name = "Reference";

Теперь я хочу, чтобы 3-й столбец отображал флажки (строки этого столбца, а не заголовок). Я сделал довольно много поиска и наткнулся на статьи, подобные этой, но показанный там метод только вставил бы новый столбец с флажками.

DataGridViewCheckBoxColumn col = new DataGridViewCheckBoxColumn();
dgvDocDisplay.Columns.Add(col);

Что мне нужно, это добавить столбец флажок в уже существующий столбец. К сожалению, я не смог ничего найти по этому поводу.

Как я могу добавить флажки в существующий столбец?

3 ответа

Решение

Если вы добавляете столбцы самостоятельно, почему бы не добавить тип столбца, который вам нужен, когда вы это делаете? Как это:

dgvDocDisplay.Columns.AddRange(
    new DataGridViewColumn[]
    {
        new DataGridViewTextBoxColumn { Name = "Tag" },
        new DataGridViewTextBoxColumn { Name = "[ ]" },
        new DataGridViewCheckBoxColumn { Name = "#" },
        new DataGridViewTextBoxColumn { Name = "Type" }
        // etc
    });

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

ты можешь использовать grid.RemoveAt(yourindex); удалять

тогда вы можете вставить желаемый как

grid.Columns.Insert(yourindex, new DataGridViewCheckBoxColumn())

Или вы можете просто использовать grid.Columns.Add(new DataGridViewCheckBoxColumn()) а затем установите DisplayIndex свойство этого столбца к вашему необходимому индексу.

Ты пытался:

dgvDocDisplay.Columns[2] = new DataGridViewCheckBoxColumn();

?

этот

DataGridViewCheckBoxColumn col = new DataGridViewCheckBoxColumn();
dgvDocDisplay.Columns.Add(col);

действительно добавляет новый столбец, таким образом, Columns.Add()

Другие вопросы по тегам