From f14d1fc28a8012035ee251fba71a0d048e9efd0d Mon Sep 17 00:00:00 2001 From: lu <99954486@qq.com> Date: 星期四, 16 一月 2025 09:10:48 +0800 Subject: [PATCH] 工具条切换状态 --- DevApp/Gs.DevApp/DevFrm/FrmMain.cs | 358 +++++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 259 insertions(+), 99 deletions(-) diff --git a/DevApp/Gs.DevApp/DevFrm/FrmMain.cs b/DevApp/Gs.DevApp/DevFrm/FrmMain.cs index c71d77b..42fd504 100644 --- a/DevApp/Gs.DevApp/DevFrm/FrmMain.cs +++ b/DevApp/Gs.DevApp/DevFrm/FrmMain.cs @@ -1,146 +1,283 @@ -锘縰sing DevExpress.XtraBars.Navigation; -using DevExpress.XtraTab; -using System; +锘縰sing System; using System.Collections.Generic; +using System.ComponentModel; +using System.Configuration; using System.Data; using System.Drawing; using System.Reflection; using System.Windows.Forms; +using DevExpress.XtraBars; +using DevExpress.XtraBars.FluentDesignSystem; +using DevExpress.XtraBars.Navigation; +using DevExpress.XtraTab; +using DevExpress.XtraTab.ViewInfo; +using Gs.DevApp.DevFrm.Sys; +using Gs.DevApp.DevFrm.User; +using Gs.DevApp.Entity; using Gs.DevApp.ToolBox; using Newtonsoft.Json; -using Gs.DevApp.Models; using Newtonsoft.Json.Linq; namespace Gs.DevApp.DevFrm { - public partial class FrmMain : DevExpress.XtraBars.FluentDesignSystem.FluentDesignForm + public partial class FrmMain : FluentDesignForm { - private static Dictionary<string, XtraTabPage> TabPageDic = new Dictionary<string, XtraTabPage>(); + private static readonly Dictionary<string, XtraTabPage> TabPageDic = + new Dictionary<string, XtraTabPage>(); + public FrmMain() { InitializeComponent(); - this.Text = System.Configuration.ConfigurationSettings.AppSettings.Get("ProductName").ToString(); + Text = ConfigurationSettings.AppSettings.Get("ProductName"); tab.CloseButtonClick += Tab_CloseButtonClick; - getTree(); tooLoading.Click += TooLoading_Click; + barPwd.ItemClick += BarPwd_ItemClick; + barExit.ItemClick += BarExit_ItemClick; + FormClosing += FrmMain_FormClosing; + barEasy.ItemClick += BarEasy_ItemClick; + getTree(); + tab.MouseDown += Tab_MouseDown; + tabCloseCurrent.Click += (s, e) => + { + string name = tab.SelectedTabPage.Tooltip; + RemoveTabPage(tab, name); + }; + tabCloseAll.Click += (s, e) => + { + string _name = tab.SelectedTabPage.Tooltip; + int _tabCount = tab.TabPages.Count; + for (int i = _tabCount; i >= 0; i--) + { + try + { + string name = tab.TabPages[i].Tooltip; + if (name != _name) + { + RemoveTabPage(tab, name); + } + } + catch (Exception) + { + } + } + }; } + private void Tab_MouseDown(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Right) + { + tab.ContextMenuStrip = null; + //TreeListHitInfo hInfo = treeList1.CalcHitInfo(new Point(e.X, e.Y)); + //TreeListNode node = hInfo.Node; + //treeList1.FocusedNode = node; + tab.ContextMenuStrip = cms1; + + } + } + + private void BarEasy_ItemClick(object sender, ItemClickEventArgs e) + { + var frm = new EasyCode(); + frm.ShowDialog(); + } + + private void FrmMain_FormClosing(object sender, FormClosingEventArgs e) + { + if (MsgHelper.AskQuestion("纭畾瑕侀��鍑虹郴缁熷悧?")) + { + var i = _userOut(); + if (i > 0) + { + FormClosing -= FrmMain_FormClosing; + Application.Exit(); + } + else + { + e.Cancel = true; //鍙栨秷銆傝繑鍥炵獥浣� + } + } + else + { + e.Cancel = true; //鍙栨秷銆傝繑鍥炵獥浣� + } + } + + /// <summary> + /// 閫�鍑� + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void BarExit_ItemClick(object sender, ItemClickEventArgs e) + { + if (MsgHelper.AskQuestion("纭畾瑕侀��鍑虹郴缁熷悧?")) + { + var i = _userOut(); + if (i > 0) + { + FormClosing -= FrmMain_FormClosing; + Application.Exit(); + } + } + } + + /// <summary> + /// 璁剧疆鐢ㄦ埛瀵嗙爜 + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void BarPwd_ItemClick(object sender, ItemClickEventArgs e) + { + var frm = new UserSetPwd(LoginInfoModel.CurrentUser.LoginUserGuid); + frm.ShowDialog(); + } + + /// <summary> + /// 閲嶆柊鍔犺浇绯荤粺 + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> private void TooLoading_Click(object sender, EventArgs e) { - int i = 100; - Gs.DevApp.UserControl.ShowDialogForm sdf = new Gs.DevApp.UserControl.ShowDialogForm("鎻愮ず", "", "璇疯�愬績绛夊�欙紝姝e湪鎿嶄綔涓紒"); - for (int j = 0; j < i; j++) - { - sdf.SetCaption("鎵ц杩涘害锛�" + (j) + "/" + i.ToString() + "锛�"); - } - sdf.Close(); getTree(); } - private void Tab_CloseButtonClick(object sender, EventArgs e) + private void getTree() { - RemoveTabPage(tab, e); - } - - private void getTree() - { + toolTime.Text = "鐧诲綍鏃堕棿" + LoginInfoModel.CurrentUser.LoginTime; var _obj = new { userGuid = LoginInfoModel.CurrentUser.LoginUserGuid, - orgGuid = LoginInfoModel.CurrentUser.LoginOrgGuid, + orgGuid = LoginInfoModel.CurrentUser.LoginOrgGuid }; - string strJson = ""; try { - strJson = UtilityHelper.HttpPost("", "User/GetUserLoginInfo", JsonConvert.SerializeObject(_obj)); - JObject _job = JObject.Parse(strJson); - string rtnCode = _job["rtnCode"].ToString(); - this.acrd.Clear(); - string rtnMsg = _job["rtnMsg"].ToString(); - barMsg.Caption = rtnMsg; - JArray array = new JArray(); - var d = _job["rtnData"]["list"]; - foreach (var a in d) + var strJson = UtilityHelper.HttpPost("", + "User/GetUserLoginInfo", JsonConvert.SerializeObject(_obj)); + DevExpress.Utils.WaitDialogForm wdf = new DevExpress.Utils.WaitDialogForm("鎷煎懡鍔犺浇涓紝璇风◢鍚�......", "鍙嬫儏鎻愮ず"); + var _job = JObject.Parse(strJson); + var rtnCode = _job["rtnCode"].ToString(); + if (int.Parse(rtnCode) > 0) { - array.Add(a); - } - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmMain)); - DataTable dt = JsonConvert.DeserializeObject<DataTable>(array.ToString()); - DataRow[] drGrp = dt.Select("upGuid is null"); - int idx = 0; - foreach (DataRow _dy in drGrp) - { - AccordionControlElement _grp = this.acrd.AddGroup(); - _grp.ImageOptions.Image = UtilityHelper.GetImgFromResource(_dy["icon"].ToString(), 1); - _grp.Name = _dy["guid"].ToString(); - _grp.Style = DevExpress.XtraBars.Navigation.ElementStyle.Group; - _grp.Text = _dy["name"].ToString(); - _grp.Tag = _dy["formPath"].ToString();//瀛樿矾寰勶紝绫诲悕 - _grp.Click += _grp_Click; - DataRow[] drItem = dt.Select("upGuid='" + _dy["guid"].ToString() + "'"); - foreach (DataRow _dy2 in drItem) + acrd.Clear(); + barMsg.Caption = _job["rtnData"]["loginMsg"].ToString(); + var array = new JArray(); + var d = _job["rtnData"]["list"]; + foreach (var a in d) array.Add(a); + var resources = + new ComponentResourceManager(typeof(FrmMain)); + var dt = + JsonConvert.DeserializeObject<DataTable>( + array.ToString()); + var drGrp = dt.Select("upGuid is null"); + int gdx = 0, idx = 0; + foreach (var _dy in drGrp) { - AccordionControlElement _itm = this.acrd.AddItem(); - _itm.ImageOptions.Image = UtilityHelper.GetImgFromResource(_dy2["icon"].ToString(), 2); - _itm.Name = _dy2["guid"].ToString(); - _itm.Style = DevExpress.XtraBars.Navigation.ElementStyle.Item; - _itm.Text = _dy2["name"].ToString(); - _itm.Appearance.Normal.Font = new System.Drawing.Font("Tahoma", 10F); - _itm.Tag = _dy2["formPath"].ToString();//瀛樿矾寰勶紝绫诲悕 - _itm.Click += _grp_Click; - _grp.Elements.Add(_itm); - // - if (idx == 0 && tab.TabPages.Count <= 0) + wdf.SetCaption("鍔犺浇杩涘害:" + _dy["name"].ToString()); + var _grp = acrd.AddGroup(); + _grp.ImageOptions.Image = + UtilityHelper.GetImgFromResource( + _dy["icon"].ToString(), 1); + _grp.Name = _dy["guid"].ToString(); + _grp.Style = ElementStyle.Group; + _grp.Text = _dy["name"].ToString(); + _grp.Tag = _dy["formPath"].ToString(); //瀛樿矾寰勶紝绫诲悕 + _grp.Click += _grp_Click; + if (gdx == 0) + _grp.Expanded = true; + var drItem = dt.Select("upGuid='" + _dy["guid"] + "'"); + foreach (var _dy2 in drItem) { - string tabPageName = _itm.Name + "_page"; - string tabText = _itm.Text;//褰撳墠閫夐」鍗¢〉Text鏍囬 - string newFormName = _itm.Tag.ToString();//瀛樿矾寰勶紝绫诲悕 - Image imgIcon = _itm.Image; - AddTabpage(tab, tabPageName, tabText, newFormName, imgIcon); + var _itm = acrd.AddItem(); + _itm.ImageOptions.Image = + UtilityHelper.GetImgFromResource( + _dy2["icon"].ToString(), 2); + _itm.Name = _dy2["guid"].ToString(); + _itm.Style = ElementStyle.Item; + _itm.Text = _dy2["name"].ToString(); + wdf.SetCaption("鍔犺浇杩涘害:" + _dy2["name"].ToString()); + _itm.Appearance.Normal.Font = + new Font("Tahoma", 10F); + _itm.Tag = _dy2["formPath"].ToString(); //瀛樿矾寰勶紝绫诲悕 + _itm.Click += _grp_Click; + _grp.Elements.Add(_itm); + if (idx == 0 && tab.TabPages.Count <= 0) + { + var tabPageName = _itm.Name + "_page"; + var tabText = _itm.Text; //褰撳墠閫夐」鍗¢〉Text鏍囬 + var newFormName = _itm.Tag.ToString(); //瀛樿矾寰勶紝绫诲悕 + var imgIcon = _itm.Image; + AddTabpage(tab, tabPageName, tabText, + newFormName, imgIcon); + } + idx++; } - idx++; - // - }; + ; + gdx++; + } } + else + { + MsgHelper.ShowError("鎻愮ず锛氬垵濮嬪寲澶辫触锛岃鑱旂郴绠$悊鍛橈紒"); + } + wdf.SetCaption("鍔犺浇杩涘害锛�90/100锛�"); + wdf.Close(); } catch (Exception ex) { - ToolBox.MsgHelper.ShowError("鎻愮ず锛�" + ex.Message); + + MsgHelper.ShowError("鎻愮ず锛�" + ex.Message); } + } + /// <summary> + /// 宸︿晶鑿滃崟鐐瑰嚮 + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> private void _grp_Click(object sender, EventArgs e) { - AccordionControlElement _acd = (AccordionControlElement)sender; + var _acd = (AccordionControlElement)sender; if (_acd.Elements.Count > 0) return; - string tabPageName = _acd.Name + "_page"; - string tabText = _acd.Text;//褰撳墠閫夐」鍗¢〉Text鏍囬 - string newFormName = _acd.Tag.ToString();//瀛樿矾寰勶紝绫诲悕 - Image imgIcon = _acd.Image; + var tabPageName = _acd.Name + "_page"; + var tabText = _acd.Text; + var newFormName = _acd.Tag.ToString(); + var imgIcon = _acd.Image; AddTabpage(tab, tabPageName, tabText, newFormName, imgIcon); } /// <summary> - /// 鏂板閫夐」鍗¢〉 + /// 鍏抽棴閫夐」鍗� + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void Tab_CloseButtonClick(object sender, EventArgs e) + { + var args = (ClosePageButtonEventArgs)e; + var name = args.Page.Tooltip; + RemoveTabPage(tab, name); + } + + /// <summary> + /// 鏂板閫夐」鍗¢〉 /// </summary> /// <param name="tabControl">閫夐」鍗℃帶浠�</param> /// <param name="tabPageName">褰撴湡閫夐」鍗¢〉name鍚嶇О</param> /// <param name="tabText">褰撳墠閫夐」鍗¢〉Text鏍囬</param> /// <param name="newFormName">褰撳墠閫夐」鍗′腑鐨勬柊绐椾綋璺緞锛岀被鍚�</param> - public void AddTabpage(XtraTabControl tabControl, string tabPageName, string tabText, string newFormName, Image imgIcon) + public void AddTabpage(XtraTabControl tabControl, string tabPageName, + string tabText, string newFormName, Image imgIcon) { - if (IsTabpageExsit(tabControl, tabPageName)) - { - return; - } - XtraTabPage newPage = new XtraTabPage(); + if (IsTabpageExsit(tabControl, tabPageName)) return; + var newPage = new XtraTabPage(); newPage.Name = tabPageName; newPage.Text = tabText; newPage.Tooltip = newPage.Name; - newPage.Appearance.Header.Font = (tab.Appearance.Font); + newPage.Appearance.Header.Font = tab.Appearance.Font; newPage.ImageOptions.Image = imgIcon; - Form fm = AddNewForm(newFormName); + var fm = AddNewForm(newFormName); if (fm != null) { newPage.Controls.Add(fm); @@ -151,22 +288,19 @@ } /// <summary> - /// 绉婚櫎閫夐」鍗¢〉 + /// 绉婚櫎閫夐」鍗¢〉 /// </summary> /// <param name="tabControl"></param> /// <param name="tabPageName"></param> /// <param name="e"></param> - public void RemoveTabPage(XtraTabControl tabControl, EventArgs e) + public void RemoveTabPage(XtraTabControl tabControl, string name) { if (TabPageDic.Count <= 1) { - ToolBox.MsgHelper.Warning("璇疯嚦灏戜繚鐣欎竴涓姛鑳斤紒"); + MsgHelper.Warning("璇疯嚦灏戜繚鐣欎竴涓姛鑳斤紒"); return; } - DevExpress.XtraTab.ViewInfo.ClosePageButtonEventArgs args = (DevExpress.XtraTab.ViewInfo.ClosePageButtonEventArgs)e; - string name = args.Page.Tooltip; foreach (XtraTabPage item in tabControl.TabPages) - { if (item.Name == name) { tabControl.TabPages.Remove(item); @@ -174,42 +308,43 @@ TabPageDic.Remove(name); return; } - } } /// <summary> - /// 鍒ゆ柇閫夐」鍗℃槸鍚﹀凡缁忓瓨鍦� + /// 鍒ゆ柇閫夐」鍗℃槸鍚﹀凡缁忓瓨鍦� /// </summary> /// <param name="tabControl">閫夐」鍗℃帶浠�</param> /// <param name="tabPageName">閫夐」鍗″悕绉�</param> /// <returns></returns> - private bool IsTabpageExsit(XtraTabControl tabControl, string tabPageName) + private bool IsTabpageExsit(XtraTabControl tabControl, + string tabPageName) { foreach (var item in TabPageDic) - { if (item.Key == tabPageName) { tabControl.SelectedTabPage = item.Value; return true; } - } + return false; } /// <summary> - /// 鍦ㄩ�夐」鍗′腑鐢熸垚绐椾綋 + /// 鍦ㄩ�夐」鍗′腑鐢熸垚绐椾綋 /// </summary> /// <param name="form">绐椾綋鍚嶇О</param> private Form AddNewForm(string formName) { try { - Form newForm = (Form)Assembly.GetExecutingAssembly().CreateInstance(formName); + var newForm = (Form)Assembly.GetExecutingAssembly() + .CreateInstance(formName); if (newForm == null) { - Gs.DevApp.ToolBox.MsgHelper.ShowError("璇锋鏌ユ槸鍚﹀紑閫氫簡璇ユā鍧楋紒"); + MsgHelper.ShowError("璇锋鏌ユ槸鍚﹀紑閫氫簡璇ユā鍧楋紒"); return null; } + newForm.FormBorderStyle = FormBorderStyle.None; newForm.TopLevel = false; newForm.ControlBox = false; @@ -219,9 +354,34 @@ } catch (Exception) { - Gs.DevApp.ToolBox.MsgHelper.ShowError("璇锋鏌ユ槸鍚﹀紑閫氫簡璇ユā鍧楋紒"); + MsgHelper.ShowError("璇锋鏌ユ槸鍚﹀紑閫氫簡璇ユā鍧楋紒"); } + return null; } + + private int _userOut() + { + var _obj = new + { + userGuid = LoginInfoModel.CurrentUser.LoginUserGuid + }; + try + { + var strJson = UtilityHelper.HttpPost("", "User/UserOut", + JsonConvert.SerializeObject(_obj)); + var _rtn = UtilityHelper.ReturnToDynamic(strJson); + if (_rtn.rtnCode > 0) + return _rtn.rtnCode; + MsgHelper.Warning("鎻愮ず锛�" + _rtn.rtnData.outMsg); + return _rtn.rtnCode; + } + catch (Exception ex) + { + DialogResult = DialogResult.Cancel; + MsgHelper.Warning("鎻愮ず锛�" + ex.Message); + return -1; + } + } } -} +} \ No newline at end of file -- Gitblit v1.9.3