Exemplo n.º 1
0
        /// <summary>
        /// 重写函数initalizeRedoUndo
        /// 当按钮属性被修改的时候,执行记录
        /// 撤销和重做操作执行的时候,主窗口中控件刷新
        /// </summary>
        override public void initalizeRedoUndo()
        {
            this.RedoUndo.UpdateOperator += () =>
            {
                refreshPropertyToPanel();
            };

            Attrib.UpdateControl += new UpdateControl((item) =>
            {
                RedoUndo.recordOper(item);
            });
        }
Exemplo n.º 2
0
        /// <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;
            });
        }