Menù al tasto desto del mouse

martedì 17 marzo 2009 - 11.09

Valdal14 Profilo | Junior Member

Ciao Raga

Vorrei realizzare un menù perosnalizzato in c# sul componente webbrowser di .net, che al tasto desto del mouse sul form apra un menù a tendina peronalizzato, potete aiutarmi....?

Grazie

Jeremy Profilo | Guru

Cia Valerio.
Basta inserire un componente ContextMenuStrip nel Form contenente anche il controllo WebBrowser.
>potete aiutarmi....?
Che tipo di difficoltà hai?

Facci sapere....
Ciao

Valdal14 Profilo | Junior Member

Ciao Jeremy

Avevo già inserito un Contenmenustrip all'interno del form ma il componente webbrowser non mi accetta l'evento click destro del mouse, se invece il menù lo inserisco nel form non visualizzo nulla perchè il contenuto del form è occupato da altri componenti, mentre se lo inserisco via codice all'evento click sul tabcontrol lo visualizzo ma solo la parte relativa alla tabpages, perchè l'interno della tabpages è occupata dal webbrowser e non mi accetta il comando

Spero di averti chiarito al meglio il mio problema

E grazie mille per la tua disponibilità

Jeremy Profilo | Guru

Ciao Valerio.
Aiutami a capire.
Ho inserito un controllo WebBrowser nel mio Form.
Ho inserito un componente ContextMenuStrip.
In fase di Design, ho associato il ContextMenuStrip1, alla proprietà ContextMenuStrip del WebBrowser.
Avvio il Debug e, facendo click tasto destro sul WebBrowser, vedo il menu a tendina che mi aspettavo di vedere.

Eventualmente, spiega bene i passaggi che esegui tu !!

Facci sapere...
Ciao

Valdal14 Profilo | Junior Member

Ciao Jeremy

Allora in un form ho inserito lato design un componente tabcontrol senza tabpages, via codice creo il tabpages che contiene il controllo webbrowser, lato design inserisco il ContextMenuStrip, però se lo inserisco sul form non vedo nulla, se lo inserisco sul tabcontrol lo visualizzo solo se clicco col desto sul nome della tabpages... è abbastanza complicato... in definitiva cerco di trovare una soluzione per evitare che l'utente tramite il destro del mouse possa aprire un link sul web-browser che però punterebbe ad aprire una finestra di explorer, mentre non voglio che ciò non sia possibile... in definita vorrei non far aprire iexplorer quando l'utente fa doppio click sul componente web-browser di .net

Se pensi ci sia un modo migliore non esitare a suggerirmelo

Grazie mille come sempre

Jeremy Profilo | Guru

Ciao Valerio.
Se ho capito bene, il tuo problema è che, non avendo il WebBrowser a DesignTime, non sai come assegnare il contextmenustrip al WebBrowser.
In questo caso devi valorizzare la proprietà WebBrowser1.ContextMenuStrip a runtime.
Quindi:

Private sub AssegnaContext() TuoTabControl1.TabPages.Add(TuaTabPage) 'Che contiene il WebBrowser TuaTabPage.WebBrowser1.ContextMenuStrip=ContextMenuStrip1 End Sub


E un problema è risolto......per disabilitare invece il ContextMenuStrip nativo del WebBrowser, devi mettere False la proprietà IsWebBrowserContextMenuEnabled
Quindi:

TuaTabPage.WebBrowser1.IsWebBrowserContextMenuEnabled=False

Spero di aver capito.

Facci sapere....
Ciao

Valdal14 Profilo | Junior Member

Ciao Jeremy

allora... io uso c# come linguaggio, ho provato il tuo codice, ma al controllo tabpages non mi fa agganciare nessun componente webbrowser :

tabpages.webbrowser1.ContextMenuStrip = contextMenuStrip1 è un'operazione che non posso completare... via codice mi permette di fare solo webbrowser1.ContextMenuStrip = contextMenuStrip1

Attendo un tuo suggerimento

Jeremy Profilo | Guru

Ciao Valerio

>tabpages.webbrowser1.ContextMenuStrip = contextMenuStrip1 è un'operazione
>che non posso completare... via codice mi permette di fare solo
>webbrowser1.ContextMenuStrip = contextMenuStrip1

Hai ragione tu ... avevo dato per scontato che tu ti fossi creato una tua tabpage personalizzata con un webbrowser integrato.
Il codice giusto è quello che hai indicato tu:
webbrowser1.ContextMenuStrip = contextMenuStrip1
webbrowser1.IsWebBrowserContextMenuEnabled=False

Facci sapere...
Ciao

Valdal14 Profilo | Junior Member

Ancora grazie per la tua assistenza Jeremy tutto ok
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5