c# - 无法隐藏 datagridview 中的第一列?

标签 c# winforms datagridview

我在 Windows 窗体中有一个 datagridview,其中包含一些列。我想通过后面的代码隐藏 Ist 列(CompanyID)。

但 Ist 列并未隐藏。

尝试过以下两件事:

dgvVendorDetails.Columns["CompanyID"].Visible = false;

还有:

dgvVendorDetails.Columns[0].Visible = false;

我不知道这背后的原因。我查了很多资料,但没有找到解决办法。

最佳答案

这两种语法都是正确的并且应该有效:

dgvVendorDetails.Columns["CompanyID"].Visible = false;
dgvVendorDetails.Columns[0].Visible = false;

我的猜测是,您正在使用 DataGridView.AutoGenerateColumns 功能,即使您设置了 DataSource 属性,DatagridView 也不会创建列直到显示网格。

所以有可能:

  • 您尝试访问尚不存在的列(但代码应引发异常)
  • 或者您访问有效的列,但当再次绑定(bind)网格时它们会被替换,因此您的代码无效(可能是您的情况,因为您没有提到异常)。

如果是这样,解决方案是使用 DataBindingComplete事件。

另请参阅这些相关问题:

编辑

正如 @brikovich 指出的,另一个解决方案不是不使用自动生成的列,而是在设计时或运行时创建并配置它们。

此线程How to select visible columns in Datagridview bound to DataTable可以帮助您实现这一目标和/或在这两个选项之间做出选择。

关于c# - 无法隐藏 datagridview 中的第一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18791041/

相关文章:

c# - ASP.NET 404 http模块

c# - 如何修复网站上的 Gecko 29.0 错误 (sec_error_unknown_issuer)?

c# - 如何获取二维数组中的 DataGridView 数据?

C# 从 DataGridView 插入 MySQL 数据后被截断

c# - .NET DataGridView 上最后一行后的空格

c# - HttpClient 请求的自定义 header

c# - 在 LINQ 中按月和年对多个日期属性进行分组

c# - 获取对象列表的 MVC 客户端验证的完整属性名称

c# - 在 C#.net 中使重叠的图片框透明

C# 如何阻止动画 gif 不断循环