/// <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(); } }
/// <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; } }