在DataGridView中显示DataTable的列子集

时间:2016-03-23 02:47:58

标签: c# datagridview datatable

我正在创建一个DataTable来存储我项目的信息,稍后会将信息输入到MS Excel文件中。我想通过DataGridView控件在WinForms项目中向用户显示一些此类数据,但我不想向用户显示整个DataTable - 只是必不可少的列。我发现这是一个挑战,因为DataTable设置为使用多于列的行。

我尝试从一个DataTable复制到另一个DataTable,使用一个存储和一个子集进行显示,但由于列共享引用,我要么不能有多个具有相同名称的列,要么我改变了一个DataTable中的列随后更改两者。我也尝试使用DataView创建子集表,但遇到了同样的问题。

有没有一个干净的方法去做? (否则我只是粗略地尝试设置我的列大小,以便在DataGridView中看不到不必要的数据。)

2 个答案:

答案 0 :(得分:0)

您需要在设计器视图中添加列(您想要显示)。并将属性AutoGenerateColumns设置为false

答案 1 :(得分:0)

试试这个

隐藏列...

this.DataGridView.Columns[0].Visible = false;

或者您可以将数据从一个数据表过滤到另一个...

string[] colnames = new string[] { "col1", "col2" };
dt2 = dt1.DefaultView.ToTable(false, colnames);

我没有测试任何代码......

您只需填写另一个DataTable,只选择您想要的数据源....