我想根据当前激活的表单更新数据库。我最初决定使用GotFocus事件。但是我现在明白,由于表单上有控件,因此无效。所以我认为我会使用激活的事件。这有效,但似乎多次开火。我输入以下代码:
Private Sub frmNewTicket_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
MsgBox("Form Activated")
End Sub
我选择表单并激活它,消息框出现约15次。
为什么这样做?我该怎么办呢我只希望我的代码在激活表单时执行一次。
注意:用户将在几种形式之间进行更改,从其他应用程序中包含表单。
答案 0 :(得分:3)
每次点击信息框中的OK
,表单都会重新获得焦点并再次激活。
在Boolean
中添加静态frmNewTicket_Activated
值,就像有人发布了here:
Static HasRan As Boolean=False
If Not HasRan Then
HasRan=True
'put code here
End If
答案 1 :(得分:1)
听起来你想要在你的表单被激活时做某事。 Form
Activated
事件将正常工作,只要您正在执行的操作不会从Form
获取焦点,然后当表格获得焦点时会触发另一个Activation
事件再次。尝试使用MessageBox
之外的其他内容进行测试,例如Beep
或更改表单的颜色