public static KeyShortCut parseText( string str ) { KeyShortCut keys = new KeyShortCut(); if( str != Settings.Default.HKPickerNothing ) foreach( var key in str.Split( new[] { '+' }, StringSplitOptions.RemoveEmptyEntries ) ) { switch( key.Trim() ) { case "Ctrl": keys.modifier|= global::ModifierKeys.Control; break; case "Shift": keys.modifier|= global::ModifierKeys.Shift; break; case "Alt": keys.modifier|= global::ModifierKeys.Alt; break; default: foreach( var val in Enum.GetValues( typeof( Keys ) ) ) { if( key == val.ToString() ) { keys.key= (Keys)val; goto ok; } } throw new InvalidOperationException( Settings.Default.HKPickerKeyIsUnknown + key ); ok: break; } } return keys; }
public static string parseKeys( KeyShortCut e ) { return parseKeys( new KeyEventArgs( e.key | (Keys)e.modifier ) ); }