myCSharp.de - DIE C# und .NET Community (https://www.mycsharp.de/wbb2/index.php)
- Gemeinschaft (https://www.mycsharp.de/wbb2/board.php?boardid=64)
-- .NET-Komponenten und C#-Snippets (https://www.mycsharp.de/wbb2/board.php?boardid=67)
--- Shortcut Manager mit Shortcuts wie Visual Studio (https://www.mycsharp.de/wbb2/thread.php?threadid=103330)


Geschrieben von TheBrainiac am 17.05.2012 um 17:24:
  Shortcut Manager mit Shortcuts wie Visual Studio
Beschreibung:

Diese Komponente erkennt Shortcuts. Erstmal nichts besonderes, da das viele Komponenten können. Aber wie viele Komponenten gibt es, die Shortcuts wie die von Visual Studio (und auch längere) erkennen können?

z.B. folgende:

Code:
1:
2:
3:
4:
5:
6:
7:
Alt + F4
Control, Shift + S
Control + E, D
Control + D, E, A, D, B, E, E, F
Control, Shift, Alt + Q, E
F3
MediaButtonPlay

C#-Code:
ShortcutManager m_Shortcuts = new ShortcutManager();

m_Shortcuts.AddListener(myForm);

Erstellt einen Shortcut Manager und trägt eine Form als Listener ein.

C#-Code:
m_Shortcuts.Actions.Add(Shortcut.Parse("Alt F4"), (s) => Close());
m_Shortcuts.Actions.Add(Shortcut.Parse("Control Shift S"), (s) => SaveAllDocuments());
m_Shortcuts.Actions.Add(Shortcut.Parse("Control S"), (s) => SaveCurrentDocument());
m_Shortcuts.Actions.Add(Shortcut.Parse("Control E D"), (s) => FormatText());
m_Shortcuts.Actions.Add(Shortcut.Parse("F3"), (s) => ShowSearchWindow());

Registriert ein paar Shortcuts.

C#-Code:
m_Shortcuts.UnknownShortcut += (s) => SetInfoText("Shortcut '" + s + "' not recognized!");

Falls ein Shortcut erkannt, aber nicht registriert wurde.

Gruß,
Christian.

UPDATE:
2014-07-08: Problem mit @-Zeichen beseitigt. (Vorher 77 Downloads)

Schlagwörter: short cut manager tasten kürzel visual studio


Geschrieben von padde77 am 05.07.2014 um 15:12:
 
Hi,

wenn ich irgendwo auf der Form eine Textbox habe, und dort eine Mailadresse einfügen möchte, wird das @ ja als "Control, Alt + Q" erkannt.
Kann ich den Erkenner auch für bestimmt Shortcuts ausschalten?

Danke padde


Geschrieben von TheBrainiac am 08.07.2014 um 17:20:
 
Hallo. Habe das Problem beseitigt.

Du musst an deine TextBox zwei EventHandler mit folgendem Code anhängen:

C#-Code:
private void textBox1_Enter(object sender, EventArgs e)
{
    m_Shortcuts.SuppressKeyPress = false;
    m_Shortcuts.SetHandled = false;
}

private void textBox1_Leave(object sender, EventArgs e)
{
    m_Shortcuts.SuppressKeyPress = true;
    m_Shortcuts.SetHandled = true;
}

Download im ersten Post angepasst.

Gruß, Christian.


Geschrieben von padde77 am 10.07.2014 um 13:04:
 
Hi Christian,

funktionert super!!!

Vielen Dank
Patrick


Geschrieben von padde77 am 26.05.2015 um 08:35:
 
Hi Christian,

hab noch eine Frage.
Wenn ich in einer Textbox stehe, aber nur einen Handler für z.B. "Strg + Q" nutzen möchte, dieser auch registriert ist aber ein User jetzt "Strg + C" drückt, springt ja der ShortcutManager an, erkennt nix, kopiert auch nicht.
Schalte ich mit suppressKey beim Enter alles aus, funktionieren meine regisrierten Shortcuts ja nicht mehr.
Gibt es eine Möglichkeit, nur auf registrierte Shortcuts zu reagieren und den Rest quasi Windows zu "überlassen"?

Danke und Grüße
Patrick


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 31.05.2020 21:59