Exemplo n.º 1
0
        /// <summary>
        /// 在示例画面上"铺"上一层新的按钮和标签
        /// </summary>
        /// <param name="obj">画面实例</param>
        private void SetControls(Object obj)
        {
            x = 0;
            y = 0;
            buttons.Clear();

            GetButtonInfo((Control)obj);

            //2010-12-2 wengfei 添加工具栏四个按钮

            if (EC.ProjectConfig.Instance.CurrentProject.TOOLBAR)
            {
                 EFButton buttNew = new  EFButton();
                buttNew.Name = "ToolbarNew";
                buttNew.Text = EP.EPES.EPESC0000063/*新增*/;
                buttNew.Location = new Point(12, 655);
                buttNew.Size = new System.Drawing.Size(70, 25);
                buttons.Add(buttNew);

                (( EFButton)buttNew).Click += new EventHandler(TestClick);

                 EFButton buttAddcopy = new  EFButton();
                buttAddcopy.Name = "ToolbarAddCopy";
                buttAddcopy.Text = EP.EPES.EPESC0000064/*复制新增*/;
                buttAddcopy.Location = new Point(100, 655);
                buttAddcopy.Size = new System.Drawing.Size(70, 25);
                buttons.Add(buttAddcopy);

                (( EFButton)buttAddcopy).Click += new EventHandler(TestClick);

                 EFButton buttDelete = new  EFButton();
                buttDelete.Name = "ToolbarDelete";
                buttDelete.Text = EP.EPES.EPESC0000065/*删除*/;
                buttDelete.Location = new Point(192, 655);
                buttDelete.Size = new System.Drawing.Size(70, 25);
                buttons.Add(buttDelete);

                (( EFButton)buttDelete).Click += new EventHandler(TestClick);

                 EFButton buttSave = new  EFButton();
                buttSave.Name = "ToolbarSaveAll";
                buttSave.Text = EP.EPES.EPESC0000066/*存盘*/;
                buttSave.Location = new Point(282, 655);
                buttSave.Size = new System.Drawing.Size(70, 25);
                buttons.Add(buttSave);

                (( EFButton)buttSave).Click += new EventHandler(TestClick);
            }
            //取出并添加按钮和标签
            foreach ( EFButton btn in buttons)
            {
                 DevExpress.XtraEditors.LabelControl label = new  DevExpress.XtraEditors.LabelControl();
                label.Text = btn.Name;
                label.AutoSize = true;
                label.BackColor = Color.Yellow;
                label.Location = new Point(btn.Location.X, btn.Location.Y - 15);
                ((Control)obj).Controls.Add(label);
                label.BringToFront();

                ((Control)obj).Controls.Add(btn);
                btn.BringToFront();
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 遍历返回授权按钮信息
        /// </summary>
        /// <param name="obj">画面实例或控件</param>
        private void GetButtonInfo(Control obj)
        {
            foreach (Control ctrl in obj.Controls)
            {
                x += ctrl.Location.X;
                y += ctrl.Location.Y;

                //标题栏和ButtonBar不作处理
                if (ctrl.Name == "title" || ctrl.Name == "Fn")
                {
                    continue;
                }
                //递归查找子控件
                else if (ctrl.HasChildren)
                {
                    GetButtonInfo(ctrl);
                }

                if (ctrl is  EFButton && (( EFButton)ctrl).Authorizable == true)
                {
                     EFButton butt = new  EFButton();
                    butt.Name = ctrl.Name;
                    butt.Text = ctrl.Text;
                    butt.Image = (( EFButton)ctrl).Image;
                    butt.Location = new Point(x, y);
                    butt.Size = ctrl.Size;
                    buttons.Add(butt);

                    ctrl.Hide();
                    (( EFButton)butt).Click += new EventHandler(TestClick);
                }
                //其他所有控件全部不可用
                else
                {
                    ctrl.Enabled = false;
                }
                x -= ctrl.Location.X;
                y -= ctrl.Location.Y;
            }
        }