Консольное приложение vb.net, использующее отправителя в качестве объекта и e в качестве EventArgs - PullRequest
2 голосов
/ 31 марта 2012

У меня есть следующий код, который позволяет моему консольному приложению переходить в трей со значком:

Sub Main()
    Dim tray As New NotifyIcon()

    tray.Icon = My.Resources.phoneIcon
    tray.Text = "Left Click to show console window"
    tray.Visible = True
    AddHandler tray.Click, AddressOf iconClicked

    ShowWindow(int, False)
    System.Windows.Forms.Application.Run()
End Sub

Private Sub iconClicked(ByVal sender As Object, ByVal e As EventArgs)
    if mouseLeft then
       ShowWindow(int, True)
    else
       ShowWindow(int, False)
    end if
End Sub

Это также позволяет вернуть консоль в рабочее состояние, если щелкнуть левой кнопкой мыши значок в трее. Проблема в том, что мне нужно щелкнуть правой кнопкой мыши, чтобы вернуть его обратно.

Как использовать ByVal e As EventArgs или ByVal sender As Object для определения, какая кнопка мыши нажата?

1 Ответ

1 голос
/ 31 марта 2012

Что вам нужно сделать, это изменить строку Sub iconClicked, чтобы использовать MouseEventArgs, а не EventArgs; вот так:

Private Sub iconClicked(ByVal sender As Object, ByVal e As MouseEventArgs)

Когда вы это сделали, вы можете использовать e.Button, чтобы выяснить, какую кнопку нажал пользователь.

...