应用程序失去焦点时隐藏winform的代码

时间:2013-07-30 18:09:01

标签: vb.net

我一直在尝试构建一个程序,当应用程序失去焦点时,该程序将隐藏我的winform。我能够提出一些代码,但是无法正常工作。这是我的代码:

    Public Sub New()

    ' This call is required by the designer.
    InitializeComponent()

    Me.LostFocus += New EventHandler(AddressOf Form1_LostFocus)
End Sub

Private Sub Form1_LostFocus(sender As Object, e As EventArgs)
    Me.WindowState = FormWindowState.Minimized
End Sub

我上线的错误:

 Me.LostFocus += New EventHandler(AddressOf Form1_LostFocus)

它说公共事件是一个事件,不能直接调用。使用RaiseEvent语句引发事件。

我不知道如何使用RaiseEvent所以我正在寻找一些帮助。

2 个答案:

答案 0 :(得分:3)

我认为您不需要以编程方式添加事件处理程序。只需将您的代码放入LostFocus事件子

即可

这样做:

  Private Sub Form1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LostFocus
    Me.WindowState = FormWindowState.Minimized
  End Sub

答案 1 :(得分:1)

您正在使用C#语法进行手动布线。

对于VB.Net,它应该如下所示:

AddHandler Me.LostFocus, AddressOf Form1_LostFocus

或者只是将Handles语法添加到方法中(如所示的aphoria):

Private Sub Form1_LostFocus(sender As Object, e As EventArgs) _
                            Handles Me.LostFocus
  Me.WindowState = FormWindowState.Minimized
End Sub