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
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.
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.
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.
Aby utworzyć kopię domyślnego ustawienia klawiatury, należy zlokalizować C:\Program Files\Microsoft Visual Studio 10\Common7\IDE\.
Kliknij prawym przyciskiem myszy jeden z plików .vsk, a następnie kliknij przycisk kopię.
Wkleić kopię w tym samym folderze, a następnie zmień nazwę.
Aby sprawdzić, czy nowy plik .vsk jest wyświetlana na liście skróty klawiaturowe w Visual Studio kliknij Opcje na Narzędzia menu.
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.
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.
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.
Wywołanie funkcji OnConnection metody, jak opisano w Jak: skompilować i uruchomić przykłady kodu modelu obiektu automatyzacji.
Tworzenie, dodawanie w.
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