C# 如何清除包括第一行在内的所有datagridview行(我尝试过Dgv.DataSource=null;Dgv.rows.clear();)
我是C#的初学者,创建了一个DataGridView,如:C# 如何清除包括第一行在内的所有datagridview行(我尝试过Dgv.DataSource=null;Dgv.rows.clear();),c#,datagridview,C#,Datagridview,我是C#的初学者,创建了一个DataGridView,如: private DataGridViewTextBoxColumn createText(string name, string Hname, int width) { DataGridViewTextBoxColumn tmt = new DataGridViewTextBoxColumn(); tmt.Name = name; tmt.HeaderText = Hname; tmt.Width = w
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;
}
private void numericUD\u值已更改(对象发送方,事件参数e)
{
Dgv.DataSource=null;
Dgv.Rows.Clear();
Init();
}
私有void Init()
{
SCM=新列表();
Dgv.AutoGenerateColumns=false;
Dgv.allowUserToAddress=false;
添加(createText(“AA”,“AA”,60));
添加(createCombo(“QQ”,60,“RRR GGG BBB”);
addNewColumns();
Dgv.DataSource=表;
}
但是当我更改numericUpDown时,AA QQ和Addnewcolumn都是在旧列之后创建的,但是如果我在函数numeriCud\u ValueChanged
中标记Init()
,第一行(AA QQ)仍然保留,但第二行消失
所以我想问一下如何删除DataGridView中的所有元素,包括第一行,然后根据NumericUpDown创建一个新的元素
谢谢您需要在清除数据源后刷新DataGridView
private void numericUD_ValueChanged(object sender, EventArgs e)
{
Dgv.DataSource = null;
Dgv.refresh();
Init();
}