vb.net每3秒动态自动刷新datagridview

vb.net每3秒动态自动刷新datagridview,vb.net,datagridview,timer,refresh,Vb.net,Datagridview,Timer,Refresh,在我的表单中,我有一个datagridview,它需要每隔2秒自动刷新一次,而无需关闭应用程序。我已经使用了下面的计时器代码来尝试实现这一点。我已将此代码放在我的表单加载中,这也是我的datagridview代码所在的位置: Dim timer As New Timer() timer.Interval = 2000 AddHandler timer.Tick, AddressOf timer_Tick timer.Start() Private Sub timer_Tick(ByVa

在我的表单中,我有一个datagridview,它需要每隔2秒自动刷新一次,而无需关闭应用程序。我已经使用了下面的计时器代码来尝试实现这一点。我已将此代码放在我的表单加载中,这也是我的datagridview代码所在的位置:

 Dim timer As New Timer()
 timer.Interval = 2000
 AddHandler timer.Tick, AddressOf timer_Tick
 timer.Start()

Private Sub timer_Tick(ByVal sender As Object, ByVal e As EventArgs)

    Me.DataGridView1.Refresh()

End Sub

然而,它所做的只是闪烁,实际上并不刷新datagridview。我的datagrid连接到Access数据库,并且未绑定,这是我用SQL做的。我做错了什么?

DGV.Refresh
告诉程序重新绘制控件。您需要重新运行获取数据并重新调用它的过程

Private Sub timer_Tick(ByVal sender As Object, ByVal e As EventArgs)
  UpdateDGV()
End Sub

Private Sub UpdateDGV()
  'run sql stuff in here
End Sub

DGV.Refresh
告诉程序重新绘制控件。您需要重新运行获取数据并重新调用它的过程

Private Sub timer_Tick(ByVal sender As Object, ByVal e As EventArgs)
  UpdateDGV()
End Sub

Private Sub UpdateDGV()
  'run sql stuff in here
End Sub


要刷新数据,您必须再次运行查询而不是
refresh
,这是
DataGridView
还是
DataGrid
它们是不同的?DataGridView,但是我需要它每3秒自动执行一次,但是如果我再次运行查询,它不会在应用程序中对datagridview执行操作吗?除非您要求它执行操作,否则它不会运行查询。因此要刷新数据,您必须再次运行查询,而不是
刷新
,这是一个
DataGridView
还是一个
DataGrid
它们是不同的?DataGridView,但我需要它每3秒自动执行一次,但是如果我再次运行查询,它不会只执行,如果我对应用程序中的DataGridView执行了一些操作。除非您要求它执行操作,否则它不会运行查询。啊,它成功了!我现在明白你的意思了!谢谢!还有一个问题,我用这个方法更新了我的组合框,但是当我选择了组合框时,我怎么才能停止刷新呢。你可以创建一个类级别的布尔变量并根据需要切换对不起,我应该把它放在哪里。。。我有一个选择索引,你必须考虑它所做的背后的逻辑,如果他们选择一些东西,然后切换到FALSE,那么是什么使它变回呢?考虑一下这个问题吧。我现在明白你的意思了!谢谢!还有一个问题,我用这个方法更新了我的组合框,但是当我选择了组合框时,我怎么才能停止刷新呢。你可以创建一个类级别的布尔变量并根据需要切换对不起,我应该把它放在哪里。。。我有一个选择索引,你必须考虑它所做的背后的逻辑,如果他们选择一些东西,然后切换到FALSE,那么是什么使它变回呢?考虑把这个问题分开。