public override void OnKeyUp(DKey key, DModifiers modifiers) { foreach (Component component in subComponents) { if (component.focused) { component.OnKeyUp(key, modifiers); } } }
internal static void DWindowOnKeyDown(object sender, KeyboardKeyEventArgs e) { DKey key = (DKey)e.Key; DModifiers modifiers = new DModifiers(e.Shift, e.Control, e.Alt); if (!e.IsRepeat) { rootCanvas.OnKeyPressed(key, modifiers); OnKeyPress?.Invoke(key, modifiers); } rootCanvas.OnKeyDown(key, modifiers); OnKeyDown?.Invoke(key, modifiers); }
/// <summary> /// 字典参数转泛型列表 /// </summary> /// <param name="InputDict">字典参数列表</param> /// <param name="Key">关键字段</param> public static List <T> Dictionary2ListT(Dictionary <string, string> InputDict, string Key = "ID") { List <T> reVal = new List <T>(); T ModelT = new T(); Type type = typeof(T); List <string> PropertyNameString = type.GetPropertyNameList(); List <string> KeyList = new List <string>(); #region 分拆关键字段 if (InputDict.ContainsKey(Key)) { foreach (string DKey in InputDict.Keys) { if (DKey.RemoveStartChar("@") == Key) { KeyList = InputDict[DKey].SplitString(",").ToList(); } } } else { foreach (string DKey in InputDict.Keys) { if (!InputDict[DKey].IsNullOrEmpty()) { KeyList = InputDict[DKey].SplitString(",").ToList(); } } } #endregion 分拆关键字段 #region 如果是ID则特殊处理 if (Key == "ID") { List <string> TKeyList = new List <string>(); foreach (string TKey in KeyList) { if (TKey.Length != 36) { TKeyList.Add(BaseTool.NewID); } else { TKeyList.Add(TKey); } } KeyList = TKeyList; } #endregion 如果是ID 则特殊处理 #region 创建泛型对象 if (KeyList.Count > 0) { Dictionary <string, List <string> > TDict = new Dictionary <string, List <string> >(); TDict.Add(Key, KeyList); #region 解析出各种属性的列表 foreach (string DKey in InputDict.Keys) { if (DKey.RemoveStartChar("@").In(PropertyNameString) && DKey.RemoveStartChar("@") != Key) { List <string> DataList = InputDict[DKey].SplitString(",").ToList(); if (DataList.Count < KeyList.Count) { for (int i = DataList.Count; i < KeyList.Count; i++) { DataList.Add(""); } } TDict.Add(DKey.RemoveStartChar("@"), DataList); } } #endregion 解析出各种属性的列表 #region 由属性创建对象并推入列表 for (int Count = 0; Count < KeyList.Count; Count++) { ModelT = new T(); foreach (string DTKey in TDict.Keys) { ModelT.SetObjectPropertyValue(DTKey, TDict[DTKey][Count]); } reVal.Add(ModelT); } #endregion 由属性创建对象并推入列表 } #endregion 创建泛型对象 return(reVal); }
protected void DoKeyUp(DKey k) { if (KeyUp != null) KeyUp(this, k); }
protected void DoKeyDown(DKey k) { if (KeyDown != null) KeyDown(this, k); }
public virtual void OnKeyPressed(DKey key, DModifiers modifiers) { }
public virtual void OnKeyUp(DKey key, DModifiers modifiers) { }
public QKeyEvent(int qSignal, DTkViewer dv, DKey key) : base(qSignal, dv) { this.key = key; }
void dv_KeyUp(DTkViewer dv, DKey k) { Dispatch(new QKeyEvent((int)DHsmSignals.KeyUp, dv, k)); }
void DoTextEditKeyUp(DTkViewer dv, DKey k) { textEditKey = k; }
void DoTextEditKeyDown(DTkViewer dv, DKey k) { textEditKey = k; }
QState DoTextEdit(IQEvent qevent) { switch (qevent.QSignal) { case (int)QSignals.Entry: // unmouseover figure currentFigure.MouseOver = false; // reset textEditKey textEditKey = new DKey(); // reset textEditMouseDown textEditMouseDown = false; // start undo record if (!undoRedoArea.IsCommandStarted) // can be started from other means undoRedoArea.Start(textEditName); // add TextEditFigure Figure tf = currentFigure; currentFigure = new TextEditFigure(tf, (ITextable)tf); figureHandler.Insert(currentFigure, tf); figureHandler.Remove(tf); // update view figureHandler.ClearSelected(); viewerHandler.Update(); return null; case (int)QSignals.Exit: // replace text edit figure with the textfigure if (currentFigure is TextEditFigure) { TextEditFigure tef = (TextEditFigure)currentFigure; if (tef.HasText || !(tef.Figure is TextFigure)) figureHandler.Insert(tef.Figure, currentFigure); figureHandler.Remove(currentFigure); // nullify currentfigure currentFigure = null; } // record text edit to undo manager undoRedoArea.Commit(); return null; case (int)DHsmSignals.MouseDown: DoTextEditMouseDown(((QMouseEvent)qevent).Dv, ((QMouseEvent)qevent).Button, ((QMouseEvent)qevent).Pt); return null; case (int)DHsmSignals.MouseMove: DoTextEditMouseMove(((QMouseEvent)qevent).Dv, ((QMouseEvent)qevent).Pt); return null; case (int)DHsmSignals.MouseUp: DoTextEditMouseUp(((QMouseEvent)qevent).Dv, ((QMouseEvent)qevent).Button, ((QMouseEvent)qevent).Pt); return null; case (int)DHsmSignals.DoubleClick: DoTextEditDoubleClick(((QMouseEvent)qevent).Dv, ((QMouseEvent)qevent).Button, ((QMouseEvent)qevent).Pt); return null; case (int)DHsmSignals.KeyDown: DoTextEditKeyDown(((QKeyEvent)qevent).Dv, ((QKeyEvent)qevent).Key); return null; case (int)DHsmSignals.KeyPress: DoTextEditKeyPress(((QKeyPressEvent)qevent).Dv, ((QKeyPressEvent)qevent).Key); return null; case (int)DHsmSignals.KeyUp: DoTextEditKeyUp(((QKeyEvent)qevent).Dv, ((QKeyEvent)qevent).Key); return null; case (int)DHsmSignals.GCutText: string text = ((TextEditFigure)currentFigure).Cut(); if (TextCut != null) TextCut(null, text); return null; case (int)DHsmSignals.GCopyText: string text2 = ((TextEditFigure)currentFigure).Copy(); if (TextCopy != null) TextCopy(null, text2); return null; case (int)DHsmSignals.GPasteText: ((TextEditFigure)currentFigure).Paste(((QGPasteTextEvent)qevent).Text); return null; case (int)DHsmSignals.GCheckState: TransitionTo(Select); return null; } return this.Main; }
void dv_KeyUp(DTkViewer dv, DKey k) { if (KeyUp != null) KeyUp(dv, k); }
void dv_KeyDown(DTkViewer dv, DKey k) { if (KeyDown != null) KeyDown(dv, k); }