Консольное приложение vb.net, использующее отправителя в качестве объекта и e в качестве EventArgs

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

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 ответ

Решение

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

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

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

Другие вопросы по тегам