我想从dataGridView1中删除未绑定数据行? 我制作了这段代码,
private void deleteButton1_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
dataGridView1.Rows.Remove(row);
}
}
但它不起作用。请给我一些帮助代码。提前谢谢
答案 0 :(得分:1)
在IDE模式下非常简单。只需在 FullRowSelect 属性中设置Datagridview的 SelectionMode ,然后在运行时只需在所需的任何选定行上按Delete键即可。它将被删除。
或者
点击按钮点击事件,点击下面的内容:
private void button1_Click(object sender, EventArgs e)
{
dataGridView1.Rows.RemoveAt(dataGridView1.CurrentRow.Index);
}
干杯
答案 1 :(得分:0)
代码应该工作,尝试在foreach循环后添加dataGridView1.Refresh();
。
我测试了它,它的工作原理。 SelectedRows
仅删除DgridView中选定的行
public Form1()
{
InitializeComponent();
dataGridView1.Columns.Add("ColumnA", "ColumnA");
dataGridView1.Columns.Add("ColumnB", "ColumnB");
dataGridView1.Rows.Add(new[] {"1colA", "1colB"});
dataGridView1.Rows.Add(new[] { "2colA", "2colB" });
}
private void button1_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
dataGridView1.Rows.Remove(row);
}
dataGridView1.Invalidate();
}
答案 2 :(得分:0)
我想你可能不应该在枚举时更改dataGrid中的行集合。您可以首先枚举dataGirdView1.SelectedRows集合以获取删除索引的行,然后实际删除它。例如:
private void deleteButton1_Click(object sender, EventArgs e)
{
// collect deleting row indexes
List<int> deletingRowIndexes = new List<int>();
foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
deletingRowIndexes.Add(row.Index);
}
// sort indexes
deletingRowIndexes.Sort();
// remove rows in backward order to save rows indexes
for(int i = deletingRowIndexes.Count - 1; i>=0; i--)
dataGridView1.Rows.RemoveAt(deletingRowIndexes[i]);
}
答案 3 :(得分:0)
foreach (DataGridViewRow row in dataGridView1.Rows)
{
// invert row selections
if (!row.Selected)
{
if (!row.IsNewRow)
{
row.Selected = true;
}
}
else
{
row.Selected = false;
}
}
// remove selected rows
foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
dataGridView1.Rows.Remove(row);
}
}