public static string FormatShortcut(Keys key) { Keys modifiers = key & Keys.Modifiers; StringBuilder b = new StringBuilder(); if ((modifiers & Keys.Control) != Keys.None) { b.Append("Ctrl"); } if ((modifiers & Keys.Shift) != Keys.None) { if (b.Length > 0) { b.Append('+'); } b.Append("Shift"); } if ((modifiers & Keys.Alt) != Keys.None) { if (b.Length > 0) { b.Append('+'); } b.Append("Alt"); } if (b.Length > 0) { b.Append('+'); } b.Append(WinFormsUtil.KeyString(key & Keys.KeyCode)); return(b.ToString()); }
private string FormatKey(Keys key) { Keys body = key & Keys.KeyCode; Keys modifiers = key & Keys.Modifiers; //modifierは常に表示する StringBuilder b = new StringBuilder(); if ((modifiers & Keys.Control) != Keys.None) { b.Append("Ctrl"); } if ((modifiers & Keys.Shift) != Keys.None) { if (b.Length > 0) { b.Append('+'); } b.Append("Shift"); } if ((modifiers & Keys.Alt) != Keys.None) { if (b.Length > 0) { b.Append('+'); } b.Append("Alt"); } if (b.Length > 0) { b.Append('+'); } //この条件付けやや恣意的 if (IsCharKey(body)) { if (modifiers != Keys.None && modifiers != Keys.Shift) { if (modifiers == Keys.Alt && (Keys.D0 <= body && body <= Keys.D9)) { _key = Keys.None; } else { b.Append(WinFormsUtil.KeyString(body)); _key = key; } } else { _key = Keys.None; } } else if (IsTerminalKey(body)) { if (modifiers != Keys.None) { //カスタマイズ不能で固定されたショートカットキーは登録できない if (modifiers == Keys.Control && IsScrollKey(body)) { _key = Keys.None; } else { b.Append(WinFormsUtil.KeyString(body)); _key = key; } } else { _key = Keys.None; } } else if (IsFunctionKey(body)) { b.Append(WinFormsUtil.KeyString(body)); _key = key; } else if (!IsModifierKey(body)) { _key = Keys.None; } return(b.ToString()); }