如何清除包括第一行在内的所有datagridview行(我尝试过Dgv.DataSource=null;Dgv.rows

本文关键字:Dgv rows null datagridview DataSource 包括第 清除 何清除 一行 | 更新日期: 2023-09-27 18:26:27

我是C#的初学者,创建了一个类似于的DataGridView

private DataGridViewTextBoxColumn createText(string name, string Hname, int width)
{
    DataGridViewTextBoxColumn tmt = new DataGridViewTextBoxColumn();
    tmt.Name = name;
    tmt.HeaderText = Hname;
    tmt.Width = width;
    tmt.DataPropertyName = name;
    return tmt;
}
private DataGridViewComboBoxColumn PMcreateCombo(string name, int width, string item_str)
{
    DataGridViewComboBoxColumn tmd = new DataGridViewComboBoxColumn();
    string[] items;
    items = item_str.Split(' ');
    tmd.HeaderText = name;
    tmd.Name = name;
    //tmd.MaxDropDownItems = 4;
    foreach (string str in items)
    {
        tmd.Items.Add(str);
    }
    tmd.Width = width;
    tmd.DataPropertyName = name;
    return tmd;
}

我想使用numericupdown来控制列的数量,所以我写了这样的东西:

private void numericUD_ValueChanged(object sender, EventArgs e)
{
    Dgv.DataSource = null;
    Dgv.Rows.Clear();
    Init();
}
private void Init()
{ 
    SCM = new List<SCM>();
    Dgv.AutoGenerateColumns = false;
    Dgv.AllowUserToAddRows = false;
    Dgv.Columns.Add(createText("AA", "AA", 60));
    Dgv.Columns.Add(createCombo("QQ", 60, "RRR GGG BBB"));
    addNewColumns();
    Dgv.DataSource = Table;            
}

但当我更改数字UpDown时,AA-QQ和Addnewcolumn都是在旧列之后创建的,但如果我在functionnumericUD_ValueChanged中标记Init(),第一行(AA-QQ)仍然保留,但第二行消失了。

所以我想问如何删除DataGridView中的所有元素,包括第一行,然后根据numericrupdown 创建一个新的元素

感谢

如何清除包括第一行在内的所有datagridview行(我尝试过Dgv.DataSource=null;Dgv.rows

清除数据源后,需要刷新DataGridView。

private void numericUD_ValueChanged(object sender, EventArgs e)
{
    Dgv.DataSource = null;
    Dgv.refresh();
    Init();
}