Estoy usando Visual Studio 2010 para crear una aplicación C# visual, y quiero incluir algunas opciones en las preferencias de mi aplicación para la personalización de atajos de teclado usando algún tipo de entrada de cuadro de texto. Entiendo cómo registrar la entrada del teclado y cómo guardarlo en la configuración de la aplicación del usuario, pero no puedo encontrar ningún control de entrada que tenga esta funcionalidad.Creando una entrada para un atajo de teclado personalizable
I.e. algo como esto:
Pero el uso de formas de las ventanas (Nota: Lo anterior es de Divvy para OS X desde la tienda de aplicaciones).
¿Hay alguna función incorporada para manejar esto? ¿Hay alguna buena biblioteca o entrada personalizada que pueda usar?
De lo contrario, ¿alguna sugerencia sobre cómo implementar algo como esto?
Solución:
Usando la respuesta de Bas B y alguna otra lógica:
private void fShortcut_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode != Keys.Back)
{
Keys modifierKeys = e.Modifiers;
Keys pressedKey = e.KeyData^modifierKeys; //remove modifier keys
if (modifierKeys != Keys.None && pressedKey != Keys.None)
{
//do stuff with pressed and modifier keys
var converter = new KeysConverter();
fShortcut.Text = converter.ConvertToString(e.KeyData);
//At this point, we know a one or more modifiers and another key were pressed
//modifierKeys contains the modifiers
//pressedKey contains the other pressed key
//Do stuff with results here
}
}
else
{
e.Handled = false;
e.SuppressKeyPress = true;
fShortcut.Text = "";
}
}
Lo anterior es una forma de saber cuando una combinación de acceso directo válida se introduce mediante la comprobación de si las dos teclas modificadoras , y se presiona otra tecla.
¿Está buscando métodos abreviados de teclado para VS2010 o para su aplicación? –
Para mi aplicación – WilHall