NamedRange.BeforeRightClick Event
Occurs when a NamedRange control is right-clicked, before the default right-click action.
Namespace: Microsoft.Office.Tools.Excel
Assembly: Microsoft.Office.Tools.Excel (in Microsoft.Office.Tools.Excel.dll)
Syntax
'Declaration
Event BeforeRightClick As DocEvents_BeforeRightClickEventHandler
event DocEvents_BeforeRightClickEventHandler BeforeRightClick
Remarks
Right-clicking overlapping NamedRange controls raises the event on each of the controls that overlap.
Examples
The following code example creates a NamedRange and then populates all the cells with the text Delete. To test the events, right-click one of the cells to make a border appear around the range, and then double-click one of the cells to clear the range.
This version is for a document-level customization.
Private clickRange As Microsoft.Office.Tools.Excel.NamedRange
Private Sub ClickToChangeRange()
clickRange = Me.Controls.AddNamedRange(Me.Range("B2", "D4"), _
"clickRange")
clickRange.Value2 = "Delete"
AddHandler clickRange.BeforeDoubleClick, _
AddressOf clickRange_BeforeDoubleClick
AddHandler clickRange.BeforeRightClick, _
AddressOf clickRange_BeforeRightClick
End Sub
Sub clickRange_BeforeRightClick(ByVal Target As Excel.Range, _
ByRef Cancel As Boolean)
clickRange.BorderAround(, Excel.XlBorderWeight.xlThick, _
Excel.XlColorIndex.xlColorIndexAutomatic, )
Cancel = True
End Sub
Sub clickRange_BeforeDoubleClick(ByVal Target As _
Excel.Range, ByRef Cancel As Boolean)
clickRange.Clear()
Cancel = True
End Sub
Microsoft.Office.Tools.Excel.NamedRange clickRange;
private void ClickToChangeRange()
{
clickRange = this.Controls.AddNamedRange(
this.Range["B2", "D4"], "clickRange");
clickRange.Value2 = "Delete";
clickRange.BeforeDoubleClick += new
Microsoft.Office.Interop.Excel.
DocEvents_BeforeDoubleClickEventHandler(
clickRange_BeforeDoubleClick);
clickRange.BeforeRightClick += new
Microsoft.Office.Interop.Excel.
DocEvents_BeforeRightClickEventHandler(
clickRange_BeforeRightClick);
}
void clickRange_BeforeRightClick(
Excel.Range Target, ref bool Cancel)
{
clickRange.BorderAround(missing, Excel.XlBorderWeight.xlThick,
Excel.XlColorIndex.xlColorIndexAutomatic, missing);
Cancel = true;
}
void clickRange_BeforeDoubleClick(
Excel.Range Target, ref bool Cancel)
{
clickRange.Clear();
Cancel = true;
}
This version is for an application-level add-in.
Private clickRange As NamedRange
Private Sub ClickToChangeRange()
Dim NativeWorksheet As Microsoft.Office.Interop.Excel.Worksheet =
Globals.ThisAddIn.Application.ActiveSheet
Dim vstoWorksheet As Microsoft.Office.Tools.Excel.Worksheet =
Globals.Factory.GetVstoObject(NativeWorksheet)
clickRange = vstoWorksheet.Controls.AddNamedRange( _
vstoWorksheet.Range("B2", "D4"), _
"clickRange")
clickRange.Value2 = "Delete"
AddHandler clickRange.BeforeDoubleClick, _
AddressOf clickRange_BeforeDoubleClick
AddHandler clickRange.BeforeRightClick, _
AddressOf clickRange_BeforeRightClick
End Sub
Sub clickRange_BeforeRightClick(ByVal Target As Excel.Range, _
ByRef Cancel As Boolean)
clickRange.BorderAround(, Excel.XlBorderWeight.xlThick, _
Excel.XlColorIndex.xlColorIndexAutomatic, )
Cancel = True
End Sub
Sub clickRange_BeforeDoubleClick(ByVal Target As _
Excel.Range, ByRef Cancel As Boolean)
clickRange.Clear()
Cancel = True
End Sub
NamedRange clickRange;
private void ClickToChangeRange()
{
Worksheet vstoWorksheet =
Globals.Factory.GetVstoObject(this.Application.ActiveWorkbook.Worksheets[1]);
clickRange = vstoWorksheet.Controls.AddNamedRange(
vstoWorksheet.Range["B2", "D4"], "clickRange");
clickRange.Value2 = "Delete";
clickRange.BeforeDoubleClick += new
Excel.DocEvents_BeforeDoubleClickEventHandler(
clickRange_BeforeDoubleClick);
clickRange.BeforeRightClick += new
Excel.DocEvents_BeforeRightClickEventHandler(
clickRange_BeforeRightClick);
}
void clickRange_BeforeRightClick(
Excel.Range Target, ref bool Cancel)
{
clickRange.BorderAround(missing, Excel.XlBorderWeight.xlThick,
Excel.XlColorIndex.xlColorIndexAutomatic, missing);
Cancel = true;
}
void clickRange_BeforeDoubleClick(
Excel.Range Target, ref bool Cancel)
{
clickRange.Clear();
Cancel = true;
}
.NET Framework Security
- Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.