using DevExpress.XtraBars; using DevExpress.XtraEditors; using Gs.DevApp.Entity; using Gs.DevApp.ToolBox; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Windows.Forms; namespace Gs.DevApp.UserControl { public partial class ToolBarMenu : DevExpress.XtraEditors.XtraUserControl { public bool isSetBtn { get; set; } public List actions { get; set; } /// /// 新增 /// public event EventHandler btnAddClick; /// /// 删除 /// public event EventHandler btnDelClick; /// /// 修改 /// public event EventHandler btnEdtClick; /// /// 刷新 /// public event EventHandler btnLoadClick; /// /// 保存 /// public event EventHandler btnSaveClick; /// /// 取消 /// public event EventHandler btnEscClick; /// /// 开工 /// public event EventHandler btnKGClick; /// /// 权限 /// public event EventHandler btnRoleClick; public ToolBarMenu() { InitializeComponent(); this.btnAdd.ItemClick += BtnAdd_ItemClick; this.btnDel.ItemClick += BtnDel_ItemClick; this.btnEdit.ItemClick += BtnEdit_ItemClick; this.btnLoad.ItemClick += BtnLoad_ItemClick; this.btnSave.ItemClick += BtnSave_ItemClick; this.btnKG.ItemClick += BtnKG_ItemClick; this.btnEsc.ItemClick += BtnEsc_ItemClick; this.btnRole.ItemClick += BtnRole_ItemClick; initialization(); List lst = new List(); foreach (BarItem item in barManager1.Items) { if (item is BarLargeButtonItem largeButtonItem) { lst.Add(item.Caption); } } this.actions = lst; } protected override void OnCreateControl() { base.OnCreateControl(); if (this.Parent != null) { getNamespace(); } } private void initialization() { List lst = new List(); lst.Add(btnAdd.Name); lst.Add(btnEdit.Name); lst.Add(btnLoad.Name); lst.Add(btnDel.Name); lst.Add(btnRole.Name); setBtn(lst); } private void BtnEsc_ItemClick(object sender, ItemClickEventArgs e) { if (MsgHelper.AskQuestion("确定要要取消吗?")) { List lst = new List(); lst.Add(btnAdd.Name); lst.Add(btnEdit.Name); lst.Add(btnLoad.Name); lst.Add(btnDel.Name); lst.Add(btnRole.Name); setBtn(lst); if (btnEscClick != null) { btnEscClick(this, e); } } } private void BtnKG_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (btnKGClick != null) { btnKGClick(this, e); } } private void BtnSave_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (btnSaveClick != null) { btnSaveClick(this, e); if (isSetBtn == true) { List lst = new List(); lst.Add(btnAdd.Name); lst.Add(btnEdit.Name); lst.Add(btnEsc.Name); setBtn(lst); } } } private void BtnLoad_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (btnLoadClick != null) { //List lst = new List(); //lst.Add(btnRole.Name); //setBtn(lst); btnLoadClick(this, e); } } private void BtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { List lst = new List(); lst.Add(btnSave.Name); lst.Add(btnEsc.Name); setBtn(lst); if (btnEdtClick != null) { btnEdtClick(this, e); } } private void BtnDel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (btnDelClick != null) { btnDelClick(this, e); } } /// /// /// /// /// private void BtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { List lst = new List(); lst.Add(btnSave.Name); lst.Add(btnEsc.Name); setBtn(lst); if (btnAddClick != null) { btnAddClick(this, e); } } private void BtnRole_ItemClick(object sender, ItemClickEventArgs e) { //List lst = new List(); //lst.Add(btnSave.Name); //lst.Add(btnEsc.Name); //setBtn(lst); if (btnRoleClick != null) { btnRoleClick(this, e); } } private void setBtn(List lstBtn) { foreach (BarItem item in barManager1.Items) { if (item is BarLargeButtonItem largeButtonItem) { if (lstBtn.Contains(item.Name)) largeButtonItem.Enabled = true; else largeButtonItem.Enabled = false; } } } /// /// 根据命名空间,读取该窗体下面的按钮集合 /// private void getNamespace() { string _formNamespace = ""; Control parentControl = this; while (parentControl.Parent != null) { if (parentControl.Parent is Form parentForm) { Type formType = parentForm.GetType(); _formNamespace = formType.FullName; break; } parentControl = parentControl.Parent; } var _obj = new { userGuid = LoginInfoModel.CurrentUser.LoginUserGuid, orgGuid = LoginInfoModel.CurrentUser.LoginOrgGuid, formNamespace = _formNamespace, }; string strReturn = ""; try { strReturn = UtilityHelper.HttpPost("", "MenuAction/GetListByUserOrgSpace", JsonConvert.SerializeObject(_obj)); ReturnModel dd = UtilityHelper.GetNoPageTableByJson(strReturn); DataTable dt = dd.rtnData; foreach (BarItem item in barManager1.Items) { if (item.Caption == "取消" || item.Caption == "刷新" || item.Caption == "保存") { item.Visibility = BarItemVisibility.Always; continue; } bool exists = dt.AsEnumerable().Any(row => row.Field("name") == item.Caption); if (exists == false) item.Visibility = BarItemVisibility.Never; else item.Visibility = BarItemVisibility.Always; } } catch (Exception ex) { ToolBox.MsgHelper.Warning("提示:" + ex.Message); } } } }