日期:2014-05-18  浏览次数:20840 次

如何在编程方式下隐藏指定的datagrid列
如题

我知道
DataGridTableStyle MyStyle =new DataGridTableStyle()  
MyStyle.MappingName = "相关表名";  
DataGrid1.TableStyles.Add(MyStyle);  
MyStyle.GridColumnStyles["字段名"].Width=0;

这个方法可以隐藏列

但是我的datagrid名字是dgvClientInfo

我把它改成:
DataGridTableStyle MyStyle = new DataGridTableStyle();
MyStyle.MappingName = "dgvClientInfo";
DataGrid1.TableStyles.Add(MyStyle);
MyStyle.GridColumnStyles["ClientID"].Width = 0;//ClientID是我要隐藏的列

结果报错:
当前上下文中不存在名称“DataGrid1”
我把DataGrid1改成dgvClientInfo
还是报错:
“System.Windows.Forms.DataGridView”并不包含“TableStyles”的定义

这个怎么办啊,我弄不懂了.......

------解决方案--------------------
当你将那个DataGrid1改为dgvClientInlfo的时候,你“.”的时候有没有出现那个TableStyles呢?


http://tag.csdn.net/tag/tablestyles/
上面的网址是有关tablestyles一些例子,
希望对你有帮助!

MyStyle.GridColumnStyles["ClientID"].Width = 0;//ClientID是我要隐藏的列
//能实现真正的隐藏吗?
在源代码能看到内容吧!
------解决方案--------------------
直接这样不行吗?

this.dataGridView1.DataSource = dt1;

this.dataGridView1.Columns[0].Visible = false;
this.dataGridView1.Refresh();