Warum wird DataGridColumn nicht aus DataGridView entfernt?

Ich habe SitteDataGridView Kontrolle und in dieser Kontrolle gibt esRefreshGrid() Methode, die füllenDataGridView unter Verwendung von DataSource. Jetzt versuche ich, ein paar Spalten daraus zu entfernenDataGridView Nach der DataSource-Bindung, aber nicht in der Lage, diese zu entfernen, werden diese Spalten nicht entfernt, sondern am Ende von DataGridView hinzugefügt, wenn ich sie aufrufeRefreshGrid() Methode erneut, dann werden diese Spalten entferntDataGridView. Hier ist Code für die MethodeRefreshGrid()

    public void RefreshGrid()
    {
        DataTable _table = AccessConnectionManagers.GetDataTableBySQLQuery("select Colm1,Colm2,Colm3 from TableName");
        //Data Source Binding with DataGridView
        this.DataSource = _table;

        if (!string.IsNullOrEmpty("Colm1"))
        {
            var _colmArray = GridRemoveColumnName.Split(new char[] { ',', ';' }, StringSplitOptions.RemoveEmptyEntries).Where(a => this.Columns.Contains(a)).Select(a => a).ToArray();

            foreach (string colm in _colmArray)
            {
                //Remove column after Source Binding
                this.Columns.Remove(colm);
            }
        }
    }

FordernRefreshGrid()

    public Form1()
    {
        InitializeComponent();
        myDataGridView1.RefreshGrid();
    }

Bitte finden Sie den Fehler und schlagen Sie mir die Lösung vor.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage