如何将Grid控件的指定列设置为不可见?附C#代码示例
如何隐藏Grid控件中的指定列
嘿,我发现你代码里的问题了——你在设置列可见性的时候多调用了ToString(),这直接把列对象转换成了字符串,而字符串根本没有Visible属性,所以那行代码完全不起作用,甚至会编译报错。
正确的做法
要隐藏DataGridView里的指定列,直接获取对应的列对象,然后把它的Visible属性设为false就行,不需要额外的ToString():
grdClients.Columns["CompanyID"].Visible = false;
修正后的完整代码
把你原来的代码里那行错误的代码替换掉,修正后的方法如下:
private void BindClients(String Search) { DBContext dbcontext = new DBContext(); SqlParameter[] Param = { new SqlParameter("@Search", Search), }; DataSet ds = dbcontext.GetDataset("Proc_getCompanies ", Param); if (ds != null && ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) { grdClients.DataSource = ds.Tables[0]; // 去掉ToString(),直接设置列的可见性 grdClients.Columns["CompanyID"].Visible = false; } else { grdClients.DataSource = null; } } else { grdClients.DataSource = null; } }
额外提醒
- 要保证
CompanyID是DataTable里真实存在的列名,注意大小写匹配(默认情况下列名是区分大小写的)。 - 如果你的Grid是自动生成列的(
AutoGenerateColumns = true),那绑定数据源后列会自动创建,这时候设置Visible是有效的;要是你手动添加的列,得确保列已经被加入到Grid的Columns集合里再设置。
内容的提问来源于stack exchange,提问作者Mujib Shaikh
相关产品推荐
相关产品推荐

