c# - DataGridView.Rows.RemoveAt(int index) 不会删除 Windows 窗体中的行?

标签 c# .net winforms data-binding row

int i = dataGridView1.CurrentRow.Index;
dataGridView1.Rows.RemoveAt(i);

上面的代码用于删除当前选定的行(仅允许选择 1 行),但我仍然可以看到该行保留在 datagridview 中。我是否错过了更新或失效?

ps:dataGridView1 是数据绑定(bind)的。

ps2:我使用linq查询来绑定(bind)数据,我不想再次查询只是为了显示一行被删除,我认为这会降低性能。

最佳答案

我认为解决方案取决于您如何绑定(bind)数据。如果您要绑定(bind) BindingList,RemoveAt() 方法会为您删除处理所有内容,并且您不必刷新 DataGridView。

尝试下面看看...

dataGridView1.Refresh();

或者重新绑定(bind)数据并查看..

dataGridView1.DataSource = myDataSource;
dataGridView1.Refresh();

关于c# - DataGridView.Rows.RemoveAt(int index) 不会删除 Windows 窗体中的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7508624/

相关文章:

c# - 如何像变量一样将表达式传递给方法?

c# - 正则表达式匹配单行或多行中的任何单词 [\r\n]

c# - 对象行为

c# - 如何在 32 位或 64 位配置中以编程方式运行任何 CPU .NET 可执行文件?

c# - 创建 "virtual"ScrollableControl?

c# - Azure Blob 容器名称可以有多长?

C# 'SerialPort' 不包含采用 6 个参数的构造函数

.net - WPF ColumnDefinition 自动宽度 MinWidth 绑定(bind)

c# - tablelayoutpanel 单元格未在 c# win 窗体中均匀填充

c# - 如何在 C# Winforms 程序中突出显示文本框中的文本?