我有一个datagridview,一旦用数据源填充视图,我就隐藏了我不需要的列。由于某种原因,第1列没有隐藏。我检查了列名称并且它们匹配,第二行执行正常隐藏了EVENTID的列。我甚至做了一个messagebox.show(dgvTourOther.Columns(“OTHERID”)。name),它返回了正确的名称。
dgvTourOther.Columns("OTHERID").Visible = False
dgvTourOther.Columns("EVENTID").Visible = False
知道什么可能导致datagridview不隐藏列?这就像其他一些属性锁定该列..
传递的值都是字符串。我在其他3个datagridviews上做了这个,但是对于某些原因,这个gridview表现不同。我将尝试重新排列列,看看是否有帮助。
答案 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)