将DataGridView_1(DGV)分配给DGV_2和DGV_2并不会更新

时间:2013-02-07 00:15:52

标签: vb.net datagridview

自从我2年前通过拖网论坛开始使用VB.NET以来,我已成功找到答案,但这次我失败了,我决定加入我最喜欢的论坛,我总是找到最好的答案。这一个: - )

我有点像初学者,因此请加载你的flack-gun吧因为我们走了......

在我的主要表单中,我有一个DGV(称为“gridDisplay”)来显示数据。这个DGV是一个只读的,因为它仅用于显示数据,而不是与它进行交互。

我有一个类的任意数量的副本(称为“TaskData”),用于保存要显示的数据,并且要在主窗体中显示的数据是活动“TaskData”类的数据。

我提出了一个很棒的想法(我现在有疑问......)想让TaskData类创建一个DGV,因为它知道它里面有什么数据以及如何显示它,然后我必须做的就是主要形式是将DGV设置为Active TaskData类(见下面的代码)

With ActiveTask

    'Assign the active DataDisplay to the one in the main form
    Me.gridDisplay = .TaskData.DataDisplay
    Me.gridDisplay.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders
    Me.gridDisplay.Refresh() 'Trying to make it update
    Me.gridDisplay.Update() 'Trying to make it update
    MsgBox("Row count: " & Me.gridDisplay.RowCount)
End With

好的,所以.TaskData.DataDisplay中的DGV有一列和500行。主窗体中的One设置为默认值为2列且没有行(在设计器中设置)

在上面的代码之后,主窗体中没有任何视觉效果。仍然是2列和0行。但是,文本框中显示:“行数:500”如果我在那里设置了一个断点,我可以检查Me.gridDisplay,它具有应该存在的所有数据。 为什么不出现? 我是通过将一个DGV分配给另一个来做一些不明智的事情吗?

非常感谢任何帮助。 任何建设性的批评同样如此: - )

1 个答案:

答案 0 :(得分:0)

我认为你应该在之前再次调用数据源 Me.gridDisplay.Refresh()
Me.gridDisplay.Update()

像这样的东西,
gridDisplay.DataSource = dataset.Tables [“your table”];