Compartilhar via


Evento NamedRange.BeforeDoubleClick (sistema de 2007)

Ocorre quando um NamedRange controle é clicado duas vezes, antes da ação padrão de clicar duas vezes.

Namespace:  Microsoft.Office.Tools.Excel
Assembly:  Microsoft.Office.Tools.Excel.v9.0 (em Microsoft.Office.Tools.Excel.v9.0.dll)

Sintaxe

Public Event BeforeDoubleClick As DocEvents_BeforeDoubleClickEventHandler

Dim instance As NamedRange
Dim handler As DocEvents_BeforeDoubleClickEventHandler

AddHandler instance.BeforeDoubleClick, handler
public event DocEvents_BeforeDoubleClickEventHandler BeforeDoubleClick

Comentários

Clicar duas vezes em sobreposição NamedRange controles dispara o evento em cada um dos controles que se sobrepõem.

Exemplos

O exemplo de código a seguir cria um NamedRange e, em seguida, preenche as células com o texto Excluir.Para testar os eventos, clicar com o botão direito do mouse em uma das células para tornar uma borda ao redor do intervalo e, em seguida, clicar clicar duas vezes em uma das células para desmarcar o intervalo.

Esta versão é para uma personalização em nível de documento.

Private clickRange As Microsoft.Office.Tools.Excel.NamedRange

PrivateSub 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
EndSubSub clickRange_BeforeRightClick(ByVal Target As Excel.Range, _
    ByRef Cancel AsBoolean)
    clickRange.BorderAround(, Excel.XlBorderWeight.xlThick, _
        Excel.XlColorIndex.xlColorIndexAutomatic, )
    Cancel = TrueEndSubSub clickRange_BeforeDoubleClick(ByVal Target As _
    Excel.Range, ByRef Cancel AsBoolean)
    clickRange.Clear()
    Cancel = TrueEndSub
Microsoft.Office.Tools.Excel.NamedRange clickRange;
privatevoid 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, refbool Cancel)
{
    clickRange.BorderAround(missing, Excel.XlBorderWeight.xlThick,
        Excel.XlColorIndex.xlColorIndexAutomatic, missing);
    Cancel = true;
}

void clickRange_BeforeDoubleClick(
    Excel.Range Target, refbool Cancel)
{
    clickRange.Clear();
    Cancel = true;
}

Esta versão é para um suplemento no nível de aplicativo.

Private clickRange As NamedRange

PrivateSub ClickToChangeRange()
    Dim vstoWorksheet As Worksheet = CType( _
        Me.Application.ActiveWorkbook.Worksheets(1),  _
        Excel.Worksheet).GetVstoObject()
    clickRange = vstoWorksheet.Controls.AddNamedRange( _
    vstoWorksheet.Range("B2", "D4"), _
        "clickRange")
    clickRange.Value2 = "Delete"AddHandler clickRange.BeforeDoubleClick, _
        AddressOf clickRange_BeforeDoubleClick
    AddHandler clickRange.BeforeRightClick, _
        AddressOf clickRange_BeforeRightClick
EndSubSub clickRange_BeforeRightClick(ByVal Target As Excel.Range, _
    ByRef Cancel AsBoolean)
    clickRange.BorderAround(, Excel.XlBorderWeight.xlThick, _
        Excel.XlColorIndex.xlColorIndexAutomatic, )
    Cancel = TrueEndSubSub clickRange_BeforeDoubleClick(ByVal Target As  _
    Excel.Range, ByRef Cancel AsBoolean)
    clickRange.Clear()
    Cancel = TrueEndSub
NamedRange clickRange;
privatevoid ClickToChangeRange()
{
    Worksheet vstoWorksheet = ((Excel.Worksheet)
        this.Application.ActiveWorkbook.Worksheets[1]).GetVstoObject();
    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, refbool Cancel)
{
    clickRange.BorderAround(missing, Excel.XlBorderWeight.xlThick,
        Excel.XlColorIndex.xlColorIndexAutomatic, missing);
    Cancel = true;
}

void clickRange_BeforeDoubleClick(
    Excel.Range Target, refbool Cancel)
{
    clickRange.Clear();
    Cancel = true;
}

Permissões

Consulte também

Referência

NamedRange Classe

Membros NamedRange

Namespace Microsoft.Office.Tools.Excel

Date

History

Motivo

Julho de 2008

Adicionado a uma versão do código de exemplo para um suplemento em nível de aplicativo.

Alteração de recurso do SP1.