using System.Linq; using System.Windows.Forms; using FastReport.Utils; namespace FastReport.Forms { public partial class ShortcutEditorForm : BaseDialogForm { private Keys keys; public Keys Keys { get { return keys; } set { keys = value; lblKeybinding.Text = Converter.ShortcutKeysToStr(Keys); } } /// protected override bool ProcessDialogKey(Keys keyData) { if (IsValidKeys(keyData)) { lblKeybinding.Text = Converter.ShortcutKeysToStr(keyData); Keys = keyData; } else { lblKeybinding.Text = Res.Get("Forms,ShortcutEditor,UnsupportedShortcut"); keys = Keys.None; } if (keyData == Keys.Enter || keyData == Keys.Escape) return base.ProcessDialogKey(keyData); return true; } private bool IsValidKeys(Keys keyData) { var keys = Converter.ValidShortcutKeys.Keys.ToList(); keys.Sort(); keys.Reverse(); foreach (var k in keys) { if (keyData.HasFlag(k)) keyData &= ~k; } return keyData == Keys.None; } public ShortcutEditorForm() { InitializeComponent(); Localize(); } /// public override void Localize() { base.Localize(); MyRes res = new MyRes("Forms,ShortcutEditor"); Text = res.Get(""); lblNeedInput.Text = res.Get("NeedInputShortcut"); } } }