You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:22:53