From 2415c4eedaa96532ffc7eb1c7e5d018106115bf4 Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期五, 19 七月 2024 19:41:54 +0800 Subject: [PATCH] 导入流程开发 --- Desktop/HStation.Desktop.Xhs.Core/MainForm.cs | 439 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 438 insertions(+), 1 deletions(-) diff --git a/Desktop/HStation.Desktop.Xhs.Core/MainForm.cs b/Desktop/HStation.Desktop.Xhs.Core/MainForm.cs index ae208f5..e63727e 100644 --- a/Desktop/HStation.Desktop.Xhs.Core/MainForm.cs +++ b/Desktop/HStation.Desktop.Xhs.Core/MainForm.cs @@ -1,19 +1,456 @@ +using DevExpress.XtraBars.Docking; +using DevExpress.XtraBars.Docking2010.Views; +using DevExpress.XtraBars.Navigation; +using DevExpress.XtraBars.Ribbon; +using DevExpress.XtraEditors; +using HStation.WinFrmUI; +using System.IO; +using Yw.WinFrmUI; +using Yw.WinFrmUI.Page; +using static DevExpress.XtraPrinting.BarCode.DataBarExpandedPatternProcessor; + namespace HStation.Desktop { - public partial class MainForm : Form + public partial class MainForm : RibbonForm { public MainForm() { InitializeComponent(); } + #region TileNavPane 相关处理 + //最大化最小化窗体 + private void nbNormal_ElementClick(object sender, NavElementEventArgs e) + { + if (this.WindowState == FormWindowState.Maximized) + { + this.WindowState = FormWindowState.Normal; + } + else + { + this.WindowState = FormWindowState.Maximized; + } + } + + //最小化窗体 + private void nbMin_ElementClick(object sender, NavElementEventArgs e) + { + this.WindowState = FormWindowState.Minimized; + } + + //关闭窗体 + private void nabClose_ElementClick(object sender, NavElementEventArgs e) + { + this.Close(); + } + + //移动窗体 + private void tileNavPane_MouseDown(object sender, MouseEventArgs e) + { + if (e.Clicks >= 2) + { + if (this.WindowState == FormWindowState.Maximized) + { + this.WindowState = FormWindowState.Normal; + } + else + { + this.WindowState = FormWindowState.Maximized; + } + } + else + { + var hitInfo = this.tileNavPane.CalcHitInfo(e.Location); + if (hitInfo.InButton) + return; + this.DragMove(); + } + } + + //功能点击事件 + private void tileNavPane_ElementClick(object sender, NavElementEventArgs e) + { + var item = e.Element as NavButton; + if (item.Tag != null) + { + if (item.Tag is int) + { + // var modular = (eModular)(int)item.Tag; + // SelectModular(modular, null); + } + } + } + + + #endregion + + #region 窗体事件 + + //界面记载事件 private void MainForm_Load(object sender, EventArgs e) { } + //界面显示事件 + private void MainForm_Shown(object sender, EventArgs e) + { + var homeGuid = new PageGuid() + { + Modular = "Xhs", + MoudingType = eMoudingType.Tab, + Function = "home" + }; + var homePage = new HomeXhsProjectPage(); + this.CreatePage(homePage, homeGuid); + } + //界面正在退出时确认 + private void MainForm_FormClosing(object sender, FormClosingEventArgs e) + { + if (e.CloseReason == CloseReason.UserClosing) + { + if (XtraMessageBox.Show("是否关闭程序?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) != DialogResult.Yes) + { + e.Cancel = true; + return; + } + } + } + + //界面退出 + private void MainForm_FormClosed(object sender, FormClosedEventArgs e) + { + + } + + //窗体尺寸改变 + private void MainForm_Resize(object sender, EventArgs e) + { + if (this.WindowState == FormWindowState.Maximized) + { + + } + else + { + + } + } + + #endregion + + #region TabbedView 相关事件处理程序 + + //选中 + private void tabbedView1_DocumentSelected(object sender, DocumentEventArgs e) + { + if (e.Document == null) + return; + var surfaceGuid = e.Document.Tag as PageGuid; + if (surfaceGuid == null) + return; + SelectModular(surfaceGuid.Modular, surfaceGuid); + } + + //添加 + private void tabbedView1_DocumentAdded(object sender, DocumentEventArgs e) + { + + } + + //激活 + private void tabbedView1_DocumentActivated(object sender, DocumentEventArgs e) + { + var page = e.Document.Control as DocumentPage; + if (page == null) + return; + } + + //关闭 此时控件已经为空 + private void tabbedView1_DocumentClosed(object sender, DocumentEventArgs e) + { + + } + + #endregion + + #region Page + + //是否存在Page + private bool IsExistPage(PageGuid pguid, bool isActivePage) + { + if (pguid == null) + { + return false; + } + if (this.dockManager1.Panels != null && this.dockManager1.Panels.Count > 0) + { + foreach (DockPanel panel in this.dockManager1.Panels) + { + if (panel.Tag != null) + { + if (panel.Tag is PageGuid) + { + if ((panel.Tag as PageGuid).ToString() == pguid.ToString()) + { + if (isActivePage) + { + panel.Show(); + } + return true; + } + } + } + } + } + + if (this.tabbedView1.Documents != null && this.tabbedView1.Documents.Count > 0) + { + foreach (BaseDocument doc in this.tabbedView1.Documents) + { + if (doc.Tag != null) + { + if (doc.Tag is PageGuid) + { + if ((doc.Tag as PageGuid).ToString() == pguid.ToString()) + { + if (isActivePage) + { + this.tabbedView1.Controller.Activate(doc); + } + return true; + } + } + } + } + } + + return false; + } + + //更新数据 + private void RefreshPageData(PageGuid pguid) + { + if (pguid == null) + { + return; + } + if (this.dockManager1.Panels != null && this.dockManager1.Panels.Count > 0) + { + var panel = this.dockManager1.Panels.ToList().Find(x => x.Tag != null && x.Tag is PageGuid && (x.Tag as PageGuid).ToString() == pguid.ToString()); + if (panel != null) + { + if (panel.ControlContainer.Controls.Count > 0) + { + var page = panel.ControlContainer.Controls[0] as DocumentPage; + if (page != null) + { + page.RefreshData(); + } + } + return; + } + } + + if (this.tabbedView1.Documents != null && this.tabbedView1.Documents.Count > 0) + { + var doc = this.tabbedView1.Documents.ToList().Find(x => x.Tag != null && x.Tag is PageGuid && (x.Tag as PageGuid).ToString() == pguid.ToString()); + if (doc != null) + { + var page = doc.Control as DocumentPage; + if (page != null) + { + page.RefreshData(); + } + return; + } + } + } + + //更新PageTitle + private void UpdatePageTitle(PageGuid pguid, PageTitle title) + { + if (pguid == null || title == null) + return; + + if (this.dockManager1.Panels != null && this.dockManager1.Panels.Count > 0) + { + var panel = this.dockManager1.Panels.ToList().Find(x => x.Tag != null && x.Tag is PageGuid && (x.Tag as PageGuid).ToString() == pguid.ToString()); + if (panel != null) + { + panel.Text = title.Caption; + panel.ImageOptions.Image = title.HeaderImage; + panel.ImageOptions.SvgImage = title.HeaderSvgImage; + panel.ImageOptions.SvgImageSize = title.SvgImageSize; + if (panel.ControlContainer.Controls.Count > 0) + { + var page = panel.ControlContainer.Controls[0] as DocumentPage; + if (page != null) + { + page.PageTitle = title; + } + } + return; + } + } + + if (this.tabbedView1.Documents != null && this.tabbedView1.Documents.Count > 0) + { + var doc = this.tabbedView1.Documents.ToList().Find(x => x.Tag != null && x.Tag is PageGuid && (x.Tag as PageGuid).ToString() == pguid.ToString()); + if (doc != null) + { + doc.Caption = title.Caption; + doc.ImageOptions.Image = title.HeaderImage; + doc.ImageOptions.SvgImage = title.HeaderSvgImage; + doc.ImageOptions.SvgImageSize = title.SvgImageSize; + var page = doc.Control as DocumentPage; + if (page != null) + { + page.PageTitle = title; + } + return; + } + } + } + + //创建Page + private bool CreatePage(DocumentPage page, PageGuid pguid) + { + if (page == null || pguid == null) + { + return false; + } + page.PageGuid = pguid; + page.Dock = DockStyle.Fill; + page.IsExistPageEvent += IsExistPage; + page.CreatePageEvent += CreatePage; + page.RefreshPageDataEvent += RefreshPageData; + page.UpdatePageTitleEvent += UpdatePageTitle; + page.ClosePageEvent += ClosePage; + page.RegistEvents(); + switch (pguid.MoudingType) + { + case eMoudingType.Dock: + { + this.dockManager1.BeginUpdate(); + DockPanel docPnl = null; + if (pguid.DockType == eDockType.Left) + { + docPnl = this.dockManager1.AddPanel(DockingStyle.Left); + } + else if (pguid.DockType == eDockType.Right) + { + docPnl = this.dockManager1.AddPanel(DockingStyle.Right); + } + + docPnl.Footer = Directory.GetCurrentDirectory(); + if (page.PageTitle != null) + { + docPnl.Text = page.PageTitle.Caption; + docPnl.ImageOptions.Image = page.PageTitle.HeaderImage; + docPnl.ImageOptions.SvgImage = page.PageTitle.HeaderSvgImage; + docPnl.ImageOptions.SvgImageSize = page.PageTitle.SvgImageSize; + } + docPnl.ControlContainer.Controls.Add(page); + docPnl.Tag = pguid; + this.dockManager1.EndUpdate(); + docPnl.Show(); + } + break; + case eMoudingType.Tab: + { + this.tabbedView1.BeginUpdate(); + var doc = this.tabbedView1.AddDocument(page); + doc.Footer = Directory.GetCurrentDirectory(); + if (page.PageTitle != null) + { + doc.Caption = page.PageTitle.Caption; + doc.ImageOptions.Image = page.PageTitle.HeaderImage; + doc.ImageOptions.SvgImage = page.PageTitle.HeaderSvgImage; + doc.ImageOptions.SvgImageSize = page.PageTitle.SvgImageSize; + } + doc.Tag = pguid; + this.tabbedView1.EndUpdate(); + this.tabbedView1.Controller.Activate(doc); + } + break; + default: break; + } + page.InitialDataSource(); + return true; + } + + //关闭Page + private void ClosePage(PageGuid pguid) + { + switch (pguid.MoudingType) + { + case eMoudingType.Dock: + { + if (this.dockManager1.Panels != null && this.dockManager1.Panels.Count > 0) + { + var panel = this.dockManager1.Panels.ToList().Find(x => x.Tag != null && x.Tag is PageGuid && (x.Tag as PageGuid).ToString() == pguid.ToString()); + if (panel != null) + { + if (panel.Visibility != DockVisibility.Hidden) + panel.Close();//会触发正在关闭和关闭事件 + //this.dockManager1.RemovePanel(panel);//不会触发正在关闭和关闭事件 + } + } + } + break; + case eMoudingType.Tab: + { + if (this.tabbedView1.Documents != null && this.tabbedView1.Documents.Count > 0) + { + var doc = this.tabbedView1.Documents.ToList().Find(x => x.Tag != null && x.Tag is PageGuid && (x.Tag as PageGuid).ToString() == pguid.ToString()); + if (doc != null) + { + this.tabbedView1.Controller.Close(doc);//会触发正在关闭和关闭事件 + } + } + } + break; + default: break; + } + } + + #endregion + + #region Modular + + //选择模块 + private void SelectModular(string modular, PageGuid pageGuid = null) + { + //foreach (NavButton item in this.tileNavPane.Buttons) + //{ + // if (item.Tag == null) + // continue; + // if (item.Tag is int) + // { + // if (((int)item.Tag) == (int)modular) + // { + // item.Appearance.BackColor = Color.FromArgb(255, 128, 0); + // } + // else + // { + // item.Appearance.BackColor = Color.Transparent; + // } + // } + //} + //this.docPnlFuncList.Text = modular.ToString(); + //this.funcTreeListCtrl1.SetBindingData(modular, surfaceGuid); + //if (surfaceGuid == null) + //{ + // var func = this.funcTreeListCtrl1.SetDefault(); + // if (func != null) + // CreateFuncPage(func); + //} + } + + + #endregion -- Gitblit v1.9.3