我是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创建一个新元素
感谢
答案 0 :(得分:0)
清除数据源后需要刷新DataGridView。
.input-field .prefix ~ .select-wrapper {
margin-left:3rem;
width:92%;
width:calc(100% - 3rem);
}