当所有列都不可见时,Datagridview会在设置Datasource后显示第一列

时间:2016-04-30 11:40:33

标签: c# .net datagridview windows-applications

我有DataGridView,我设置了所有列'可见为假。
现在我设置了DataSource,Kaboom,猜怎么着?第一列是可见的。为什么会这样?原因是什么?
有没有办法阻止此默认行为或通过其他一些操作覆盖它?

1 个答案:

答案 0 :(得分:0)

虽然B.Yaylaci的suggested link的答案会有所帮助,但我觉得它们对于维护代码的未来开发人员来说是模糊不清的 - 如果你想在某些时候看到你的ID列,那该怎么办呢?不希望它显示在列的最后?在更改DataSource时更正这些问题的一种简单方法是在DataGridView.DataBindingComplete事件中设置列可见性,以获得更一致的行为。

例如,如果由于某种原因我希望DataGridView在绑定后看起来完全为空*,直到我另有决定(某种逻辑或用户交互?),那么我可能会执行以下操作:

private void DataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
    foreach (DataGridViewColumn col in this.dataGridView1.Columns)
    {
        col.Visible = false;
    }

    this.dataGridView1.RowHeadersVisible = false;
    this.dataGridView1.ScrollBars = ScrollBars.None;
}

*注意:如果以后的列可见,则需要重置RowHeadersVisibleScrollBars