protected CustomShortcut FindShortcutNode(Control control) { var target = FindControlHelper .FindControl(control, _shortcutMap); return(target != null ? _shortcutMap[target.GetType()] : null); }
public bool ProcessMessageKey(Control control, Keys keys, ShortcutManager manager) { var methodName = FindShortcutMethod(keys); if (methodName == null) { return(Parent != null && Parent.ProcessMessageKey(control, keys, manager)); } var mi = _owner.GetMethod(methodName, _bindingFlags); var ht = new Dictionary <Type, Control> { { OwnerType, control } }; var target = FindControlHelper.FindControl(control, ht) ?? manager.MainForm; if (mi != null) { try { mi.Invoke(target, null); } catch (Exception e) { throw new ApplicationException( "Произошла непредвиденная ошибка при обработке клавиатурного сообщения." + Environment.NewLine + "Возможно у вас повреждена БД или имеется ошибка в RSDN@Home", e); //MessageBox.Show(Form.ActiveForm, // "Произошла непредвиденная ошибка при обработке клавиатурного сообщения." // + Environment.NewLine // + "Возможно у вас повреждена БД или имеется ошибка в Янусе.", // "RSDN@Home"); //return false; } } return(true); }