View Full Version : [VB.NET] Posizione ContextMenuStrip
Salve a tutti. sono ora che sto sbattendo la testa conm questo banalissimo controllo.....
il mio problema è che quando vado a fare
ContextMenuStrip.Show()
mi visualizza il menu nell'angolo in alto a sinistra dello schermo... ma non dvrebbe aprirsi dove si trova il mouse in quel momento???
dove sbaglio?
Ciao!
No ... il contextmenustrip viene visualizzato esattamente nel punto dichiarato nel metodo Show() ...
ContextMenuStrip1.Show() richiede alcuni parametri al suo interno ... almeno 2:
- controllo sul quale considerare le coordinate per la visualizzazione
- posizione as Point (ovvero coordinate dall' angolo alto a sinistra del controllo)
Spesso si usa con 3 parametri:
- controllo sul quale considerare le coordinate per la visualizzazione
- pixel a destra del controllo
- pixel in basso del controllo
Nell' esempio che ti riporto qua sotto, facendo click col destro sul form, viene visualizzato il ToolStripMenu alle coordinate (50,50) a partire dall' angolo alto a sinistra del form (controllo Me) ...
Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
If e.Button = Windows.Forms.MouseButtons.Right Then
ContextMenuStrip1.Show(Me, 50, 50)
End If
End Sub
Private Sub MessaggioToolStripMenuItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MessaggioToolStripMenuItem.Click
MsgBox("Ciao ...", MsgBoxStyle.Information, "Messaggio")
End Sub
Ciao mynos,
sapevo che bisogna passargi i punti se si vuole che appaia in un punt determinato, es. 50,50
io volevo che si aprisse non nel solito punto, ma dove si trova il mouse in quel momento.. ovviamente è una cavolata... mi ha fatto perdere un monte di tempo, ma alla fine ce l'ho fatta.....
bisogna andare sul controllo desiderato e associargli alla proprietà ContextMenu, il ContextMenu generato... a quel punto via codice ti puoi limitare a scrivere:
ContextMenu.Show()
e il menu si aprirà sempre nel punto esatto del mouse....... è stata una mia svista... :(
tipica banalità che ti fa perdere un monte di tempo :(
grazie ugualmente per la tua risposta!! ci sentiamo per il prossimo aiuto;)
a presto!!
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.