PDA

View Full Version : [Vb.Net] NotifyIcon_MouseClick


immakx
20-06-2009, 13:56
Buon dì,
il problema, o meglio la stranezza, si descrive in due righe:


Private Sub NotifyIcon_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon.MouseClick
ContextMenuStrip.Show(e.Location)
End Sub


Ora, perchè secondo lui a livello di coordinata (X;Y) il punto in cui clicco è sempre e "0;0" ?
Con questa risposta il menu appare sempre nell'angolino in alto a sinistra dello schermo ... ( che è brutto :D ).
Come faccio a trovare la coordinata del punto in cui clicco o quanto meno dell'icona nella Tray?

Grazie,

MarcoGG
20-06-2009, 18:13
Tutto ciò per estendere anche al Click sinistro l'apertura del menu contestuale ?
Sai che, se associ il ContextMenuStrip al NotifyIcon, in design, puoi già aprire il menu cliccando di destro sull'icona senza bisogno di codice ?

Comunque, il perchè del tuo problema al momento non lo so, ma puoi aggirare gestendo il Click sinistro come fosse... il destro ! ;) :

Private Sub NotifyIcon1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseClick

If e.Button = Windows.Forms.MouseButtons.Left Then
Dim MI As System.Reflection.MethodInfo = GetType(NotifyIcon).GetMethod("ShowContextMenu", System.Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.NonPublic)
MI.Invoke(NotifyIcon1, Nothing)
End If

End Sub

Prova... ;)