Udostępnij za pośrednictwem


Jak: Zachowaj istniejące skróty klawiaturowe

Zazwyczaj zmiana skrótu klawiaturowego dla polecenia istniejący skrót jest tracone.Poniższy przykład ilustruje sposób powiązać dwa nowe skróty do polecenia i nadal zachować jego już istniejących.

Jeśli chcesz wyświetlić listę poleceń, wraz z ich bieżące skróty, uruchomić przykład ListKeyBindings, jak przedstawiono w Jak: wyświetlanie istniejących powiązań klucza.

[!UWAGA]

Okien dialogowych i poleceń menu, którą widzisz mogą różnić się od tych opisanych w pomocy, w zależności od tego, aktywne ustawienia lub edition.Procedury te zostały opracowane z ogólnych ustawień rozwoju aktywnych.Aby zmienić ustawienia, kliknij przycisk przywozu i wywozuUstawienia na Narzędzia menu.Aby uzyskać więcej informacji, zobacz Visual Studio, ustawienia.

Aby dodać nowe skróty klawiaturowe i zachować istniejące

  1. Użyj Programu Visual Studio-W Kreatorze do tworzenia Dodaj w.Nazwa projektu, a następnie kliknij przycisk OK , aby uruchomić kreatora.

    Aby uzyskać więcej informacji na temat używania Programu Visual Studio-W Kreatorze, zobacz Jak: Tworzenie dodatku.

  2. Na Wybierz język programowania strony, wybierz opcję za pomocą Utwórz Dodaj w Visual C# do uruchomienia Visual C# przykład poniżej, lub utworzyć - w przy użyciu kodu języka Visual Basic do uruchomienia Visual Basic przykład.

  3. Wklej funkcję przykład (zaprezentowano w dalszej części tego tematu) w klasie Połącz kod, który jest generowany przez Programu Visual Studio-W Kreatorze.

  4. Aby utworzyć kopię domyślnego ustawienia klawiatury, należy zlokalizować C:\Program Files\Microsoft Visual Studio 10\Common7\IDE\.

  5. Kliknij prawym przyciskiem myszy jeden z plików .vsk, a następnie kliknij przycisk kopię.

  6. Wkleić kopię w tym samym folderze, a następnie zmień nazwę.

  7. Aby sprawdzić, czy nowy plik .vsk jest wyświetlana na liście skróty klawiaturowe w Visual Studio kliknij Opcje na Narzędzia menu.

  8. W lewym okienku Opcje okno dialogowe rozwiń środowiska folderu i wybierz klawiatury.

    Zapewnić, że nazwa pliku .vsk wcześniej określonych pojawia się w Zastosuj następujący plan mapowania klawiatury dodatkowe listy.

  9. Przed uruchomieniem przykład w, upewnij się, że skróty klawiaturowe są ustawione na (domyślnie).Można to zrobić, klikając zresetować w klawiatury okienka Opcje okno dialogowe.

  10. W prop.Value = "<Filename.vsk>" krok przykład w, należy zastąpić <Filename.vsk> przy użyciu nazwy wcześniej określonego pliku .vsk.

  11. Wywołanie funkcji OnConnection metody, jak opisano w Jak: skompilować i uruchomić przykłady kodu modelu obiektu automatyzacji.

  12. Tworzenie, dodawanie w.

  13. Aby uruchomić dodatek, kliknij - w Menedżerze na Narzędzia menu, zaznacz żądany dodatek został utworzony i kliknij OK.

    File.NewFile Polecenia jest związany, nowe skróty klawiaturowe klawiszy CTRL + ALT + SHIFT + Y i CTRL + ALT + SHIFT + U, a także skróty oryginalnego.

Przykład

Dodać w przykładzie przedstawiono sposób powiązać dwa nowe skróty klawiaturowe do polecenia, a także zachować jego istniejących.

Sub PreserveBindings()
    ' Adds two new key bindings while preserving the existing ones.
    Dim cmds As Commands
    Dim cmd As Command
    Dim props As EnvDTE.Properties = DTE.Properties("Environment", _
    "Keyboard")
    Dim prop As EnvDTE.Property
    Dim bindings() As Object
    Dim bindingNumber As Integer

    ' Set references to the Commands collection and the File.NewFile
    ' command.
    cmds = DTE.Commands
    cmd = cmds.Item("File.NewFile")
    ' Make a writeable copy of the default keymapping scheme.
    prop = props.Item("SchemeName")
    prop.Value = "<FileName.vsk>"
    ' Retrieve the current bindings for the command.
    bindings = cmd.Bindings
    ' Get the number of bindings for the command.
    bindingNumber = bindings.Length
    ' Add two more elements to the array to accomodate two
    ' new commands.
    ReDim Preserve bindings(bindingNumber + 1)
    ' Add the new bindings to the existing ones in the array.
    bindings(bindingNumber) = "Global::CTRL+ALT+SHIFT+Y"
    bindings(bindingNumber + 1) = "Global::CTRL+ALT+SHIFT+U"
    ' Assign the contents of the bindings array to the Bindings 
    ' property.
    cmd.Bindings = bindings
End Sub
public void OnConnection(object application,
 Extensibility.ext_ConnectMode connectMode, object addInInst, ref
 System.Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    // Pass the applicationObject member variable to the code example.
    PreserveBindings((_applicationObject); 
}

// Add-in example for TextSelection.FindPattern.
// Also shows usage of these methods and properties:
//    TextSelection.SelectLine
public void PreserveBindings( DTE dte ) 
{ 
    // Adds two new key bindings while preserving the existing ones.
    Commands cmds = null; 
    Command cmd = null; 
    EnvDTE.Properties props = dte.get_Properties( "Environment",
 "Keyboard"); 
    EnvDTE.Property prop = null; 
    Object[] bindings = null; 
    int bindingNumber = 0; 

    //  Set references to the Commands collection and the File.NewFile
    //  command.
    cmds = dte.Commands; 
    cmd = cmds.Item( "File.NewFile", -1 ); 
    // Make a writeable copy of the default keymapping scheme.
    prop = props.Item( "SchemeName" ); 
    prop.Value = "<FileName.vsk>"; 
    // Retrieve the current bindings for the command.
    bindings = ( ( System.Object[] )( cmd.Bindings ) ); 
    // Get the number of bindings for the command.
    bindingNumber = bindings.Length; 
    // Add two more elements to the array to accomodate two
    // new commands.
    // Create temp variable for copying values. 
    // Arrays are zero-based in C#.
    object[] temp = new object[ bindingNumber + 2 ]; 
    System.Array.Copy( bindings, temp, Math.Min( bindings.Length,
 temp.Length ) ); 
    bindings = temp; 
    // Add the new bindings to the existing ones in the array.
    bindings[ bindingNumber ] = "Global::CTRL+ALT+SHIFT+Y"; 
    bindings[ bindingNumber+1 ] = "Global::CTRL+ALT+SHIFT+U"; 
    // Assign the contents of the bindings array to the Bindings 
    // property.
    cmd.Bindings = bindings; 
}

Zobacz też

Zadania

Jak: powiązać polecenie pojedynczego klawisza skrótu

Jak: powiązać polecenie wiele skrótów klawiaturowych

Koncepcje

Format parametru właściwości powiązania

Inne zasoby

Powiązanie dodatek poleceń do kluczy