隐藏dataGridView中的列,然后再次显示所有列

时间:2013-06-19 19:30:23

标签: c# datagridview datagridviewcolumn

我的dataGridView包含多个列。我可以隐藏单个列,但之后我希望能够再次显示所有列。我可以用for语句做到这一点;但是,我认为我应该能够用foreach做到这一点;但是,我无法正确理解语法。

我的工作声明:

for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
    dataGridView1.Columns[i].Visible = true;
}

我在foreach声明中尝试了什么:

foreach (var column in dataGridView1.Columns)
{
    dataGridView1.Columns[column].Visible = true;
}

我知道我需要列的索引值;但是,我错过了如何从列值中获取它。让我疯狂的是,我知道它很简单,我不知道!

另一方面,为此使用for或foreach是否更好?或者一方面是否真的有任何好处?

感谢您的帮助。 布赖恩。

1 个答案:

答案 0 :(得分:3)

foreach (DataGridViewColumn column in dataGridView1.Columns)
{
    column.Visible = true;
}

使用foreach,您可以直接对该对象执行操作。在这种情况下,唯一的好处是可读性,尽管它也不需要额外的int变量。通常,foreach可以更有效,因为它将实现留给单个集合类,当然,它知道枚举自身的最有效方法。示例:HashSet

请注意,因为Columns属性是DataGridViewColumnCollection,它实现IEnumerable而不是IEnumerable<DataGridViewColumn>或类似,所以您必须指定变量的类型。如果您说var,您将获得object

我认为这是因为DataGridView是在仿制药实施之前设计的。