我无法从一个用户控件调用另一个用户控件的方法。什么都没发生。 假设我有控件的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
提前感谢您提出任何建议。
答案 0 :(得分:0)
Control2上的处理程序创建一个新的Control1实例,这不是您的网格所在的实例。
您可以在Control2上创建一个属性,并在构造后传入Control1实例。
或者只是在可以访问这两个控件的范围内处理此事件,即它们所在的表单。