如何清除所有datagridview行,包括第一行(我已经尝试过Dgv.DataSource = null; Dgv.Rows.Clear();)

时间:2015-12-11 09:04:19

标签: c# datagridview clear

我是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;            
}

但是当我更改numericUpDown时,AA QQ和Addnewcolumn都是在旧版本之后创建的,但是如果我在Init()中标记functionnumericUD_ValueChanged,那么第一行(AA QQ)仍然是仍然存在,但第二行消失了。

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

感谢

1 个答案:

答案 0 :(得分:0)

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

.input-field .prefix ~ .select-wrapper {
  margin-left:3rem; 
  width:92%; 
  width:calc(100% - 3rem);
}