Metodo ViewFilter.ShowContextMenu (Int32, Guid, IOleCommandTarget)
gestisce SHOWCONTEXTMENU comando per visualizzare un menu di scelta rapida.
Spazio dei nomi: Microsoft.VisualStudio.Package
Assembly: Microsoft.VisualStudio.Package.LanguageService (in Microsoft.VisualStudio.Package.LanguageService.dll)
Sintassi
'Dichiarazione
Public Overridable Sub ShowContextMenu ( _
menuId As Integer, _
groupGuid As Guid, _
target As IOleCommandTarget _
)
public virtual void ShowContextMenu(
int menuId,
Guid groupGuid,
IOleCommandTarget target
)
Parametri
- menuId
Tipo: System.Int32
[in] ID del menu da visualizzare.
- groupGuid
Tipo: System.Guid
[in] Il GUID del gruppo di menu dal menu ID viene preso.
- target
Tipo: Microsoft.VisualStudio.OLE.Interop.IOleCommandTarget
[in] IOleCommandTarget l'oggetto che prevede la gestione dei comandi del menu di scelta rapida.
Note
Questo metodo viene chiamato per gestire un menu di scelta rapida nella visualizzazione corrente.Ciò consente di visualizzare per contenere il menu di scelta rapida o modificare il menu esistente e per visualizzarla.
Il metodo di base viene chiamato con un oggetto menuID di IDM_VS_CTXT_CODEWIN, a groupGuid di guidSHLMainMenue target il IOleCommandTarget interfaccia implementata in ViewFilter classe.Il metodo di base determina se le macro non vengono registrande e verrà visualizzato il menu di scelta rapida.
Esempi
Di seguito è riportato come base ViewFilter la classe implementa questo metodo.
using System;
using Microsoft.VisualStudio.OLE.Interop;
using Microsoft.VisualStudio.Shell;
namespace Microsoft.VisualStudio.Package
{
[CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(true)]
public class ViewFilter :
IVsTextViewFilter,
IVsTextViewEvents,
IOleCommandTarget,
IDisposable
{
public virtual void ShowContextMenu(int menuId,
Guid groupGuid,
IOleCommandTarget target)
{
IVsUIShell uiShell = this.service.GetService(typeof(SVsUIShell)) as IVsUIShell;
// disable context menu while recording macros.
if (uiShell != null && !this.service.IsMacroRecordingOn())
{
System.Drawing.Point pt = System.Windows.Forms.Cursor.Position;
POINTS[] pnts = new POINTS[1];
pnts[0].x = (short)pt.X;
pnts[0].y = (short)pt.Y;
int hr = uiShell.ShowContextMenu(0, ref groupGuid, menuId, pnts, target);
if (hr < 0)
{
Debug.Assert(false, "uiShell.ShowContextMenu returned " + hr);
}
}
uiShell = null;
}
}
}
Sicurezza di .NET Framework
- Attendibilità totale per il chiamante immediato. Impossibile utilizzare questo membro in codice parzialmente attendibile. Per ulteriori informazioni, vedere Utilizzo di librerie da codice parzialmente attendibile.