Пользовательский столбец DataGridView дублируется при использовании его в Designer

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

Когда я помещаю элемент управления в новую форму, он появляется с новым столбцом в нем. Запуск программы приводит к двум столбцам изображения в сетке.

Новая форма просто добавила компонент и установила Dock.Fill

Когда я запускаю его, ничего не меняя, он показывает мне две колонки. Первый работает так, как должен, а второй всегда показывает отсутствующее изображение х (в нем не было данных, поэтому они показывают оба х).

В конструкторе формы автоматически добавляется столбец ne изображения.

private CustomDataGridView customDataGridView1;
private System.Windows.Forms.DataGridViewImageColumn dataGridViewImageColumn1;

Когда я продолжаю редактировать в форме, иногда случается, что VS создает еще больше копий тех же столбцов. Чтобы решить эту проблему, я должен время от времени очищать список DGV.Columns.

Как я могу запретить VS копировать мои поля?

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

public class CustomDataGridView : DataGridView
{
    private DataGridViewImageColumn EditStatusIcons;

    private bool hasIcons = true;
    public bool HasIcons
    {
        get { return this.hasIcons; }
        set
        {
            if (this.Columns["EditIcons"] == null) return;

            this.Columns["EditIcons"].Visible = value;
            this.hasIcons = value;
        }
    }

    public CustomDataGridView()
    {
        this.EditStatusIcons = new System.Windows.Forms.DataGridViewImageColumn();

        this.EditStatusIcons.HeaderText = "";
        this.EditStatusIcons.Name = "EditStatusIcons";

        this.Columns.Add(this.EditStatusIcons);
    }
}

Редактировать: Я также пытался использоватьthis.AutoGenerateColumns = false; как вПользовательский DataGridView добавляет столбцы каждый раз, когда я строю сказал. Ничего не меняется

Очистка списка столбцов в форме удаляет рабочий столбец и оставляет столбец dataGridViewImageColumn1, который является просто пустым столбцом с неправильным именем.

Ответы на вопрос(2)

Ваш ответ на вопрос