如何从另一个用户控件调用用户控制方法?

时间:2014-08-29 09:58:36

标签: vb.net

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

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

control1和control2都是以表格形式同时加载的。 control1正确加载我的DataGridView中的数据但是当我更新数据库中的数据并单击control1中的按钮再次加载时,细节没有任何反应。

我想调用control1中的方法来检查记录集中的任何更新。那应该是我想要发生的事情。但我无法让它发挥作用。

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

这就是我的所作所为。

在control1中:

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

在control2中:

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

提前感谢您提出任何建议。

1 个答案:

答案 0 :(得分:0)

Control2上的处理程序创建一个新的Control1实例,这不是您的网格所在的实例。

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

或者只是在可以访问这两个控件的范围内处理此事件,即它们所在的表单。