【发布时间】:2015-04-21 07:41:51
【问题描述】:
我在拆分容器中有一个 panel2,其中加载了多个用户控件。面板 1 有一个退出按钮,我想调用加载到面板 2 中的用户控件之一中的子例程之一。
Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
Dim dialogMessage As DialogResult
Dim a As New ucTimeTracker
dialogMessage = MessageBox.Show("Are you sure you want to exit?", "Exit Ready Office Assistant?", _
MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)
If dialogMessage = Windows.Forms.DialogResult.Yes Then
ucTimeTracker.autoWriteFileOnExit()
Me.Close()
Else
Return
End If
End Sub
这条线给我带来了麻烦。
ucTimeTracker.autoWriteFileOnExit()
我正在获取(对非共享成员的引用需要对象引用)。
我希望 frmMain.SplitContainer.Panel1 上的退出按钮调用加载到 splitContainer.Panel2 中的名为 ucTimeTracker 的用户控件上的 autoWriteFileOnExit()
【问题讨论】:
-
我使用了一个不漂亮的小技巧,但它确实有效。 UC中的Public SubProcs在外面是不可见的,但是公共属性是可见的。然后,我创建了一个公共 WriteOnly 属性,并通过它调用我的 proc。例如:Public WriteOnly Property CallGetFiltro() As Boolean Set(ByVal value As Boolean) If value = True Then Me.GetFiltro() Else 'Do Nothing End If End Set End Property
标签: vb.net user-controls