vb.net多次激活

时间:2011-09-22 02:47:02

标签: vb.net winforms

我想根据当前激活的表单更新数据库。我最初决定使用GotFocus事件。但是我现在明白,由于表单上有控件,因此无效。所以我认为我会使用激活的事件。这有效,但似乎多次开火。我输入以下代码:

Private Sub frmNewTicket_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
    MsgBox("Form Activated")
End Sub

我选择表单并激活它,消息框出现约15次。

为什么这样做?我该怎么办呢我只希望我的代码在激活表单时执行一次。

注意:用户将在几种形式之间进行更改,从其他应用程序中包含表单。

2 个答案:

答案 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或更改表单的颜色