在 mdiChild 之一中启用或禁用计时器
Enabling or disabling the timer in one of the mdiChild
例如我有 frmMenu
、frmParent
和 frmChild
。
在我的 frmChild
上我有 tmrChild.enabled = false
。我实例化了 10 frmChild
,所以我的 frmParent
里面有 10 frmChild
。请注意,每个 frmChild
内部都有一个名为 tmrChild
的计时器,它们都是 enabled = false
.
每个frmChild
表格的名称是frmChild1
, frmChild2
, frmChild3
.... frmChild10
我的frmMenu
上有10 buttons
,每个都对应frmChild
的enabled
属性。所以,
10 buttons on my frmMenu = 10 timer in each of my frmChild
我想要的是,当我在我的 frmMenu 中单击 button1
时,它将在我的 frmChild1 中启用 timer
。我该怎么做?
我试过以 frmChild
的名字为目标,类似这样
Private Sub button1_Click(sender As Object, e As EventArgs) Handles button1.Click
Dim objForms As Form
For Each objForms In frmParent.MdiChildren
If objForms.Text = "frmChild1" Then
objForms.tmr1.enabled = True
End If
Next
End Sub
我似乎在这部分代码中遗漏了一些简单的东西
objForms.tmrChild.enabled = True
如何在上面引用 timer
?
我倾向于为此使用 Dictionary
。不是为子表单设置单独的字段,而是为 Dictionary(Of Button, fmrChild)
设置一个字段。然后,您可以将每个 Button
/表单对添加到 Dictionary
。单击 Button
时,您会从 Dictionary
中获得相应的表格并按要求进行操作,例如
Private childFormsByButton As New Dictionary(Of Button, frmChild)
Private Sub Buttons_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click
Dim btn = DirectCast(sender, Button)
Dim frm = childFormsByButton(btn)
frm.StartTimer()
End Sub
请注意,该方法的 Handles
子句包括所有 Buttons
。
当然,您必须在子表单中编写 StartTimer
方法,并在其中调用 Timer
上的 Start
。
例如我有 frmMenu
、frmParent
和 frmChild
。
在我的 frmChild
上我有 tmrChild.enabled = false
。我实例化了 10 frmChild
,所以我的 frmParent
里面有 10 frmChild
。请注意,每个 frmChild
内部都有一个名为 tmrChild
的计时器,它们都是 enabled = false
.
每个frmChild
表格的名称是frmChild1
, frmChild2
, frmChild3
.... frmChild10
我的frmMenu
上有10 buttons
,每个都对应frmChild
的enabled
属性。所以,
10 buttons on my frmMenu = 10 timer in each of my frmChild
我想要的是,当我在我的 frmMenu 中单击 button1
时,它将在我的 frmChild1 中启用 timer
。我该怎么做?
我试过以 frmChild
的名字为目标,类似这样
Private Sub button1_Click(sender As Object, e As EventArgs) Handles button1.Click
Dim objForms As Form
For Each objForms In frmParent.MdiChildren
If objForms.Text = "frmChild1" Then
objForms.tmr1.enabled = True
End If
Next
End Sub
我似乎在这部分代码中遗漏了一些简单的东西
objForms.tmrChild.enabled = True
如何在上面引用 timer
?
我倾向于为此使用 Dictionary
。不是为子表单设置单独的字段,而是为 Dictionary(Of Button, fmrChild)
设置一个字段。然后,您可以将每个 Button
/表单对添加到 Dictionary
。单击 Button
时,您会从 Dictionary
中获得相应的表格并按要求进行操作,例如
Private childFormsByButton As New Dictionary(Of Button, frmChild)
Private Sub Buttons_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click
Dim btn = DirectCast(sender, Button)
Dim frm = childFormsByButton(btn)
frm.StartTimer()
End Sub
请注意,该方法的 Handles
子句包括所有 Buttons
。
当然,您必须在子表单中编写 StartTimer
方法,并在其中调用 Timer
上的 Start
。