第一列没有隐藏在datagridview中

时间:2010-02-26 14:05:21

标签: vb.net datagridview

我有一个datagridview,一旦用数据源填充视图,我就隐藏了我不需要的列。由于某种原因,第1列没有隐藏。我检查了列名称并且它们匹配,第二行执行正常隐藏了EVENTID的列。我甚至做了一个messagebox.show(dgvTourOther.Columns(“OTHERID”)。name),它返回了正确的名称。

dgvTourOther.Columns("OTHERID").Visible = False
dgvTourOther.Columns("EVENTID").Visible = False

知道什么可能导致datagridview不隐藏列?这就像其他一些属性锁定该列..

传递的值都是字符串。我在其他3个datagridviews上做了这个,但是对于某些原因,这个gridview表现不同。我将尝试重新排列列,看看是否有帮助。

3 个答案:

答案 0 :(得分:4)

我记得几年前在一个项目上遇到过这个问题。我记得有两种可能的解决方案。第一个是将.Visible设置代码从构造函数中移出(假设你现在拥有它)和类似Form_Load事件。

第二个解决方案(可能对我来说真的很有用)是将我想要隐藏的列移动到网格的末尾(右侧)。我知道愚蠢。

答案 1 :(得分:1)

datagridview中列的名称是否与数据源中的列名相同。这可能是导致此问题的原因

答案 2 :(得分:0)

当我们清除Datagridview列并设置columns属性时会发生这种情况。在这种情况下,在定义columns属性后设置DGV源。

            dgvProdGrp.DataSource = Nothing
    With dgvProdGrp.Columns
        .Clear()
        .Add(clsCommon.setTextColumn("prdg_id", "prdg_id", 0, 0, True, DataGridViewContentAlignment.MiddleLeft, ""))
        .Add(clsCommon.setTextColumn("prdg_name", "Group Name", 200, 1, True, DataGridViewContentAlignment.MiddleLeft, ""))
    End With
    dgvProdGrp.DataSource = objDB.View_ProdGrp(1)