/// <summary> /// 重写函数initalizeRedoUndo /// 当按钮属性被修改的时候,执行记录 /// 撤销和重做操作执行的时候,主窗口中控件刷新 /// </summary> override public void initalizeRedoUndo() { this.RedoUndo.UpdateOperator += () => { refreshPropertyToPanel(); }; Attrib.UpdateControl += new UpdateControl((item) => { RedoUndo.recordOper(item); }); }
/// <summary> /// 页面默认值初始化 /// </summary> void initalize() { this._isModify = false; ///允许接收拖拽 this.AllowDrop = true; ///初始化框选功能 initRectSelect(); ///刷新控件 refreshPropertyToPanel(); /////////////////////启用双缓冲/////////////////////// SetStyle(ControlStyles.UserPaint, true); /// 禁止擦除背景. SetStyle(ControlStyles.AllPaintingInWmPaint, true); SetStyle(ControlStyles.DoubleBuffer, true); ///当有撤销和恢复操作发生的时候 ///将当前页面设置为已经被修改状态 RedoUndo.operChanged += new OperatorChanged(() => { IsModify = true; }); //只要是执行撤销和恢复操作,就更新界面显示 RedoUndo.UpdateOperator += new DoFunction(() => { refreshPropertyToPanel(); }); //只要属性值发生变化,就记录,将来进行恢复操作 Attrib.UpdateControl += new UpdateControl((item) => { RedoUndo.recordOper(item); //refreshPropertyToPanel(); }); ///鼠标拖入控件事件 ///判断并过滤不是预期的控件类型 this.DragEnter += new DragEventHandler((sender, e) => { if (!e.Data.GetDataPresent(typeof(SVSelectItem))) { return; } e.Effect = DragDropEffects.Copy | DragDropEffects.Move; }); }