[VB.Net] Gestire evento clik in ContextMenuStrip

domenica 01 maggio 2011 - 19.42
Tag Elenco Tags  VB.NET  |  .NET 4.0  |  Visual Studio 2010

Scrigno Profilo | Newbie

Ciao a tutti...
Stavo cercando di fare una piccola applicazione "notfyIcon" ma non riesco a capire come gestire l'evento click nell menu contestuale...

Ecco come ho proceduto:
1- ho aperto visual studio 2010 ed ho aperto una nuova applicazione windows form
2- ho eliminato la form ed ho aggiunto un modulo
3- Ho dichiarato una notifyIcon ed un contextmenustrip
4- ho aggiunto qualche item al menu:
Sub AggiungiElementiAMenucontestale() MenuContestuale.Items.Add("Esci") MenuContestuale.Items.Add("&Altra scelta") MenuContestuale.Items.Add("&Scielta successiva") End Sub

volevo valutare la scelta dell item cliccato in questo evento:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Ma purtroppo non riesco a prelevare i vari nomi...
Ormai le ho finito le idee e non so più dove sbattere la testa :-(

babbubba Profilo | Senior Member

Secondo me sbagli evento...
prova ad intercettare ItemClicked...
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

ma soprattutto quando crei gli item del menù contestuale assegnagli tu dei nomi che puoi riconoscere poi....

Dim s As ToolStripItem = ContextMenuStrip1.Items.Add("Apri la finestra NOME") s.Name = "NOME"

Ma devi farlo perforza a runtime? Non puoi usare il semplicissimo ed intuitivo design mode??
Babbubba

www.bsoftsolutions.it

Chiedere è curiosità ... rispondere è educazione.

Scrigno Profilo | Newbie

Grazie infinite per l' interesse e perdona il mio ritardo nel rispondere... Ho avuto, non chiedermi come, l'intuizione di passarmi tutti gli eventi del toolstrip e sono incappato contro a quello che mi ha fatto capire che stavo intercettando l'evento sbagliato...

Me la sono poi cavata in questo modo per quello che riguarda la generazione degl' items in fase di inizializzazione:

'Se la lista dei programmi è popolata allora: If ListaProgrammi.Count > 0 Then 'Per ogni programma della lista crea una voce di menu con relativa icona For Each i As Programma In ListaProgrammi MenuContestuale.Items.Add(i.Eseguibile.ToString, i.Icona.ToBitmap) Next

e così per l' aggiunta di voci in .. (si dice run time?) quando l' applicazione è utilizzata:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

...
Sarei comunque curioso di capire cosa intendevi dire con:
[color= green]Ma devi farlo perforza a runtime? Non puoi usare il semplicissimo ed intuitivo design mode?? Babbubba[/color]

Cos'è un design mode? ... Anche a grandi linee mi accontento :-)

babbubba Profilo | Senior Member

scusa ma non avevo capito che devi creare degli elementi dinamicamente...

Con design mode volevo dire ceare un context menu dall'editor di visual studio... ma nel tuo caso dove la lista di elementi è dinamica devi farlo 'a runtime' cioe durante l'esecuzione del codice ovvero quello che fai tu... :-)

Scusa ma alle volte quando scrivo tendo a complicarmi la vita ;-)


Babbubba

www.bsoftsolutions.it

Chiedere è curiosità ... rispondere è educazione.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5