0

当我用没有行的 DataTable 更改 DataGridView 的 DataSource,然后用包含行的 DataTable 更改 DataSource 时,标题文本更改和其他属性(如宽度)...

4

3 回答 3

1

尝试在和之间使用BindingSource控件。该控件有一个非常有用的属性称为,它将过滤掉不需要的行而不创建新对象或以其他方式影响底层的结构,因此您的 DataGridView 的标题不会受到影响。DataGridViewDataTableBindingSourceFilterDataTableDataTable

您可以通过代码手动执行此操作,也可以在设计器中删除 BindingSource 的实例。代码看起来像这样:

BindingSource bs = new BindingSource();
bs.DataSource = YourDataTable;
YourGridView.DataSource = bs;

然后,您只需执行以下操作即可过滤掉您的结果:

bs.Filter = "some_column = 'some_value'";
于 2013-07-24T10:16:27.177 回答
0

我通过复制 DT 并清除她的行来解决问题。比我将该 DT 分配给 DataSorce 现在一切正常。也许不是最好的方法,但它有效。谢谢你们!

于 2013-07-24T10:10:13.203 回答
0

尝试先清除 DGV,然后再使用包含行的 DataTable 重新填充它。

于 2013-07-24T01:54:01.543 回答