我有一个MDIParent表单,其中包含工具栏中的上一个和下一个按钮。 MDIChildA包含一个DataGridView,并且MDIChildB或MDIChildC表单根据行类型显示所选行的属性。所有MDI子表单都以DocStyle.Fill显示。
目标是使上一个和下一个按钮调用MDIChildA中的方法,并使MDIChildA为下一个DataGridView行刷新MDIChildB或MDIChildC(取决于行类型。)>
MDIChildC表单是最近在DataGridView中包含第二种类型的项目时引入的。当只有一个行类型时,上一个和下一个函数将起作用。这是下一步的编码方式:
在MDIParent:
Private Delegate Sub InvokePrevNext() Private Sub tsbNext_Click(sender As Object, e As EventArgs) Handles tsbNext.Click Try If Not ActiveMdiChild Is Nothing Then Dim frm As Object frm = Me.ActiveMdiChild Dim dlg As InvokePrevNext = AddressOf frm.MoveNext dlg.Invoke() End If Catch ex As Exception ' ignore exceptions End Try End Sub
在MDIChildB中:
Public Sub MoveNext() Call psMovePreviousNext(pMDIChildA.NextRowPrimaryKey) End Sub
(最初调用MDIChildB时,它接收MDIChildA ByRef并保存其指针。)
现在存在MDIChildC表单,我需要重新定向控件,以便MDIChildA通过确定下一行类型并刷新适当的子代来处理下一个请求。在我看来,我不再可以使用ActiveMDIChild方法。
谁能建议一种方法?
我有一个MDIParent表单,其中包含工具栏中的上一个和下一个按钮。 MDIChildA包含一个DataGridView,并且MDIChildB或MDIChildC表单根据...
由于MDIChildA具有特定目的(显示网格)并提供其他表单(MDIChildB或MDIChildC)的信息,因此您可以在MDIParent(私有childA AS MDIChildA)中保留对MDIFormA实例的引用。然后在tsbNext_Click
中,可以在childA
(MDIChildA的实例)上调用一个公共函数,以返回所选的行信息,该信息随后可以传递给MDIChildB或MDIChildC等。