1

我一直在尝试构建一个程序,当应用程序失去焦点时将隐藏我的 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)

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

我不确定如何使用 RaiseEvent,所以我正在寻求一些帮助。

4

2 回答 2

3

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

只需这样做:

  Private Sub Form1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LostFocus
    Me.WindowState = FormWindowState.Minimized
  End Sub
于 2013-07-30T18:14:40.113 回答
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
于 2013-07-30T18:28:23.283 回答