Vb.net DataGridView在窗口失去焦点后丢失数据源

Vb.net DataGridView在窗口失去焦点后丢失数据源,vb.net,datagridview,Vb.net,Datagridview,完成这个球。可能是一些简单的事情,但它让我感到困惑 我在say FormA上实现了DataGridView。DataGrid有一个数据源,它是数据集中的一个表 我在DGV中有一列,它是一个按钮,用于启动另一个表单,称为this FormB。来自FormB的数据然后被推送到变量,然后在FormB关闭后,一个计时器在FormA上触发,然后检查按钮所属的行中是否有新数据要更新 然后在DGV中相应地更新特定列中的值 在FormA不是应用程序启动表单之前,所有这些都可以正常工作。如果我放置一个FormC作

完成这个球。可能是一些简单的事情,但它让我感到困惑

我在say FormA上实现了DataGridView。DataGrid有一个数据源,它是数据集中的一个表

我在DGV中有一列,它是一个按钮,用于启动另一个表单,称为this FormB。来自FormB的数据然后被推送到变量,然后在FormB关闭后,一个计时器在FormA上触发,然后检查按钮所属的行中是否有新数据要更新

然后在DGV中相应地更新特定列中的值

在FormA不是应用程序启动表单之前,所有这些都可以正常工作。如果我放置一个FormC作为登录,然后在成功登录时在关闭它之前启动FormA,那么在我单击DGV列中的按钮之前,一切都正常。一旦FormB启动,这次DGV的数据源设置为nothing,而这次当计时器启动时,我得到一个索引越界错误(这是预期的,因为我的DGV现在有0行和0列!)。这就像FormA无法再引用它自己的DataGridView一样,即使该表单尚未关闭


不确定要提供什么代码,但很高兴与大家分享您认为可能存在问题的部分。

DataGridView是在哪个表单上填写的,在什么情况下填写的?我不知道计时器的用途。您可能试图使用
FormA
的默认实例来访问已创建表单实例的子控件。Mary,FormA拥有DataGrid,并在另一个类中的函数完成后填充,如果表中的结果超过0,则设置DataGridView的数据源。计时器的启动只是为了让FormA知道FormB已经完成,然后检查是否有任何需要处理的新值。FormB可以无限期地开放,所以最好让FormA知道它应该重新开始处理用户输入。Jimi-你愿意进一步解释吗,这样我就可以缩小这种可能性了?