A coluna DataGridView personalizada é duplicada ao usá-la no Designer

Eu criei um componente DataGridView personalizado que possui um DataGridViewImageColumn padrão. Uma nova propriedade altera a visibilidade da coluna quando não preciso em uma tabela específica. Eu adiciono a coluna no construtor e a atualizo no evento CellFormatting. Essa é a parte que funciona como pretendido.

Quando solto o controle em um novo formulário, ele aparece com a nova coluna. A execução do programa resulta em duas colunas de imagem na grade.

Um novo formulário acabou de adicionar o componente e definir Dock.Fill

Quando inicio sem alterar nada, ele mostra duas colunas. A primeira está funcionando como deveria e a segunda sempre mostra a imagem x ausente (não havia dados nela, então elas mostram ambos x).

No designer do formulário, há uma coluna de imagem nova adicionada automaticamente.

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

Quando eu continuo editando no formulário, às vezes acontece que o VS cria ainda mais cópias das mesmas colunas. Para corrigir o problema, tenho que limpar a lista DGV.Columns de vez em quando.

Como posso impedir que o VS copie meus campos?

O código a seguir é a parte mínima para reproduzir o problema.

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);
    }
}

Editar: Eu também tentei usarthis.AutoGenerateColumns = false; como emO DataGridView personalizado adiciona colunas sempre que eu construo disse. Nada muda.

Limpar as colunas listadas no formulário remove a coluna de trabalho e deixa uma coluna dataGridViewImageColumn1, que é apenas uma coluna vazia completa com o nome errado.

questionAnswers(2)

yourAnswerToTheQuestion