Vb.net 如何调用用户控件';来自另一个用户控件的方法?

Vb.net 如何调用用户控件';来自另一个用户控件的方法?,vb.net,Vb.net,我无法从一个用户控件调用另一个用户控件的方法。什么也没发生。 假设我有一个control1和control2控件的名称 在control1中,我有一个方法InvokeItems(),用于在control1中填充我的DataGridView。 在control2中,我有一个按钮,它将调用control1中的InvokeItems()方法 control1和control2在表单中同时加载。 control1在我的DataGridView中正确加载数据,但是当我更新数据库中的数据并单击control

我无法从一个用户控件调用另一个用户控件的方法。什么也没发生。 假设我有一个control1和control2控件的名称

在control1中,我有一个方法InvokeItems(),用于在control1中填充我的DataGridView。 在control2中,我有一个按钮,它将调用control1中的InvokeItems()方法

control1和control2在表单中同时加载。 control1在我的DataGridView中正确加载数据,但是当我更新数据库中的数据并单击control1中的按钮再次加载详细信息时,什么也没有发生

我想调用control1中的方法来检查记录集中的任何更新。这应该是我想要的。但我无法让它工作

但当我在control2中放置一个按钮并调用InvokeItems方法时,即使我更新了数据库中的一些数据,它也会正确加载DataGridView

这就是我所做的

在控制1中:

Public Sub New()
    InvokeItems()
End Sub

Public Sub InvokeItems()

    Dim objInvoker As New ClassItems
    Dim BS As New BindingSource()

    BS.DataSource = objInvoker.InvokeList
    GridItems.DataSource = BS

End Function
在控制2中:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim objSM As New control1
    Call objSM.InvokeItems()
End Sub

提前感谢您的建议。

您的控件2上的处理程序将创建一个新的Control1实例,这不是网格所在的实例

您可以在Control2上创建一个属性,并在构造后传入Control1实例


或者在一个可以访问两个控件(即它们所在的窗体)的范围内处理此事件。

如何绑定按钮以调用Populate?@norekhov我忘了提到我有一个名为ClassItems的类,该类有方法InvokeList来填充我的网格。另外,我已经更新了上面的问题。谢谢你的建议。我会努力的。。并给你结果的反馈。