Porady: zachowywanie istniejących skrótów klawiaturowych
Dodatki Visual Studio zostały zaniechane w programie Visual Studio 2013.Dodatki należy uaktualniać do pakietu rozszerzenia VSPackage.Aby uzyskać więcej informacji na temat uaktualniania, zobacz Często zadawane pytania: konwertowanie dodatków na rozszerzenia pakietu VSPackage.
Zazwyczaj zmiana skrótu klawiaturowego dla polecenia powoduje utratę istniejącego skrótu.Poniższy dodany przykład pokazuje jak powiązać dwa nowe skróty do polecenia, a także zachować już istniejące.
Jeśli chcesz wyświetlić listę poleceń, wraz z ich bieżącymi skrótami, uruchom przykład ListKeyBindings jak pokazano w Porady: wyświetlanie istniejących powiązań klawiszy.
[!UWAGA]
Polecenia menu i okien dialogowych mogą różnić się od tych opisanych w Pomocy, w zależności od ustawień aktywnych lub wydania.Procedury te zostały opracowane z ogólnych ustawień projektowych active.Aby zmienić swoje ustawienia, kliknij Importuj i eksportujustawienia w menu Narzędzia.Aby uzyskać więcej informacji, zobacz Dostosowywanie ustawień środowiska deweloperskiego w Visual Studio.
Aby dodać nowe skróty klawiaturowe i zachować istniejące
Użyj Kreatora dodatków programu Visual Studio, aby utworzyć dodatek.Nazwij projektu i kliknij OK, aby uruchomić kreatora.
Aby uzyskać więcej informacji na temat sposobu użycia Kreatora dodatków pakietu Visual Studio, zobacz Porady: tworzenie dodatku.
Na stronie Wybierz język programowania wybierz opcję Utwórz dodatek przy użyciu programu Visual C# , aby uruchomić Visual C# przykład poniżej, lub Utwórz dodatek przy użyciu języka Visual Basic do uruchomienia Visual Basic przykładu.
Wklej przykład funkcja (zaprezentowano w dalszej części tego tematu) w klasie Połącz kod, który jest generowany przez programu Visual Studio dodatek Kreator.
Aby utworzyć kopię domyślną ustawienia klawiatury, zlokalizuj C:\Program Files\Microsoft 10\Common7\IDE\ programu visual Studio.
Kliknij prawym przyciskiem myszy jeden z plików .vsk a następnie kliknij Kopiuj.
Wklej kopię w tym samym folderze, a następnie zmień jego nazwę.
Aby sprawdzić, czy nowy plik .vsk pojawia się na liście skrótów klawiatury w Visual Studio kliknij Opcje w menu Narzędzia.
W lewym okienku okna dialogowego Opcje rozwiń folder Środowisko i wybierz Klawiatura.
Upewnij się, że nazwa pliku .vsk, określonego wcześniej pojawia się na liście Zastosuj poniższy schemat mapowania dodatkowej klawiatury.
Przed uruchomieniem przykładu dodatku, upewnij się, że skróty klawiaturowe są ustawione na (Opcja domyślna).Można to zrobić, klikając Resetuj w okienku Klawiatura okna dialogowego Opcje.
W kroku prop.Value = "<Filename.vsk>" przykładu dodatku, zamień <Filename.vsk> za pomocą nazwy pliku .vsk określonej wcześniej.
Wywołaj funkcję z metody OnConnection zgodnie z opisem w Porady: kompilowanie i uruchamianie kodu modelu obiektów automatyzacji — przykłady.
Kompiluj dodatek.
Aby uruchomić dodatek, kliknij przycisk Menedżer dodatków w menu Narzędzia, zaznacz dodatek, który został utworzony i kliknij OK.
File.NewFile polecenie jest zobowiązane do nowych skrótów klawiaturowych CTRL + ALT + SHIFT + Y i CTRL + ALT + SHIFT + U, a także do oryginalnych skrótów.
Przykład
Poniższy dodany przykład pokazuje jak powiązać dwa nowe skróty klawiaturowe do polecenia, a także zachować już istniejące.
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
Porady: powiązanie polecenia z jednym klawiszem skrótu
Porady: powiązanie polecenia z wieloma klawiszami skrótu
Koncepcje
Format parametru właściwości powiązania