using DevExpress.XtraSplashScreen; using GCAS.Actions; using GCAS.Code; using GCAS.Dto; using GCAS.Localization; using GCAS.Model; using GCAS.Reports; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Threading; using System.Windows.Forms; namespace GCAS { public partial class MainForm : DevExpress.XtraEditors.XtraForm { private List entranceModels; private EntranceRepository EntranceRepository; private List deviceModels; private DeviceRepository deviceRepository; private List L; public OperatorModel Operator; public MainForm() { InitializeComponent(); L = LocalizationHelper.GetSource(Thread.CurrentThread.CurrentUICulture); mdiManager.ClosePageButtonShowMode = DevExpress.XtraTab.ClosePageButtonShowMode.InAllTabPagesAndTabControlHeader; helpProvider1.HelpNamespace = Application.StartupPath + $"/Sources/{Thread.CurrentThread.CurrentUICulture.Name}.chm"; helpProvider1.SetShowHelp(this, true); deviceRepository = new DeviceRepository(); EntranceRepository = new EntranceRepository(); } private void MainForm_Load(object sender, EventArgs e) { bar_operator.Caption = L.GetString("operator") + Operator?.Name; mdiManager.MdiParent = this; timer_currentTime.Interval = 1000; timer_currentTime.Start(); if (Operator.Role == 1) { nbg_user.Visible = false; nbg_actions.Visible = false; } ShowMessage(); entranceModels = EntranceRepository.GetList(); deviceModels = deviceRepository.GetList(); if (deviceModels.Count > 1) { if (entranceModels.Count > 2) { RealTimeForm form = new RealTimeForm { currentUser = Operator, MdiParent = this }; form.Show(); } else { RealTimeTwoCarForm form = new RealTimeTwoCarForm { currentUser = Operator, MdiParent = this }; form.Show(); } } else { if (entranceModels.Count > 1) { RealTimeOneCarTwoEntanceForm form = new RealTimeOneCarTwoEntanceForm { currentUser = Operator, MdiParent = this }; form.Show(); } else { RealTimeOneCarForm form = new RealTimeOneCarForm { currentUser = Operator, MdiParent = this }; form.Show(); } } HideMessage(); } public void theout(object source, System.Timers.ElapsedEventArgs e) { if (IsHandleCreated) { var forms = MdiChildren; if (forms.Length > 0) { Invoke(new EventHandler(delegate { Form form = forms[new Random().Next(0, forms.Length - 1)]; if (form.Name == "RealTimeForm") { var realForm = form as RealTimeForm; realForm.BindTable(null); realForm.BindChart(); } form.Activate(); })); } } } public void chartRef(object source, System.Timers.ElapsedEventArgs e) { if (IsHandleCreated) { var form = MdiChildren.FirstOrDefault(c => c.Name == "RealTimeForm"); if (form != null) { Invoke(new EventHandler(delegate { var realForm = form as RealTimeForm; realForm.BindChart(); })); } } } private void timer_currentTime_Tick(object sender, EventArgs e) { bar_time.Caption = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); } private void btn_singout_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { DialogResult = DialogResult.Retry; Close(); } private void nbi_device_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e) { if (!MdiChildren.Any(c => c.Name == "DeviceForm")) { DeviceForm form = new DeviceForm { currentUser = Operator, MdiParent = this }; form.Show(); } else { MdiChildren.First(c => c.Name == "DeviceForm").Activate(); } } private void nbi_main_realtime_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e) { if (MdiChildren.Any(c => c.Name == "RealTimeForm")) { MdiChildren.First(c => c.Name == "RealTimeForm").Activate(); } else if (MdiChildren.Any(c => c.Name == "RealTimeOneCarForm")) { MdiChildren.First(c => c.Name == "RealTimeOneCarForm").Activate(); } else if (MdiChildren.Any(c => c.Name == "RealTimeTwoCarForm")) { MdiChildren.First(c => c.Name == "RealTimeTwoCarForm").Activate(); } else if (MdiChildren.Any(c => c.Name == "RealTimeOneCarTwoEntanceForm")) { MdiChildren.First(c => c.Name == "RealTimeOneCarTwoEntanceForm").Activate(); } else { ShowMessage(); if (deviceModels.Count > 1)//两台车用两车的显示页面 { if (entranceModels.Count>2)//两车两料口 { RealTimeForm form = new RealTimeForm { currentUser = Operator, MdiParent = this }; form.Show(); } else//两车三料口 { RealTimeOneCarForm form = new RealTimeOneCarForm { currentUser = Operator, MdiParent = this }; form.Show(); } } else { if (entranceModels.Count > 1)//一车两料口 { RealTimeOneCarTwoEntanceForm form = new RealTimeOneCarTwoEntanceForm { currentUser = Operator, MdiParent = this }; form.Show(); } else//一车一料口 { RealTimeOneCarForm form = new RealTimeOneCarForm { currentUser = Operator, MdiParent = this }; form.Show(); } } HideMessage(); } } private void nbi_main_record_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e) { if (!MdiChildren.Any(c => c.Name == "RecordForm")) { RecordForm form = new RecordForm { currentUser = Operator, MdiParent = this }; form.Show(); } else { MdiChildren.First(c => c.Name == "RecordForm").Activate(); } } private void btn_sysset_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { SystemSetForm form = new SystemSetForm { currentUser = Operator, }; form.ShowDialog(); } private void nbi_user_list_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e) { if (!MdiChildren.Any(c => c.Name == "OperatorForm")) { OperatorForm form = new OperatorForm { currentUser = Operator, MdiParent = this }; form.Show(); } else { MdiChildren.First(c => c.Name == "OperatorForm").Activate(); } } private void btn_serverset_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { using (ServerSet form = new ServerSet()) { form.currentUser = Operator; if (form.ShowDialog() == DialogResult.OK) { Application.Restart(); } } } private void nbi_team_list_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e) { if (!MdiChildren.Any(c => c.Name == "TeamForm")) { TeamForm form = new TeamForm { currentUser = Operator, MdiParent = this }; form.Show(); } else { MdiChildren.First(c => c.Name == "TeamForm").Activate(); } } private void btn_changePwd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { using (ChangePwd form = new ChangePwd()) { form.currentOperator = Operator; if (form.ShowDialog() == DialogResult.OK) { } } } private void nbi_actions_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e) { if (!MdiChildren.Any(c => c.Name == "ActionsLog")) { ActionsLog form = new ActionsLog { MdiParent = this }; form.Show(); } else { MdiChildren.First(c => c.Name == "ActionsLog").Activate(); } } private void nbi_chart_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e) { if (!MdiChildren.Any(c => c.Name == "ChartForm")) { ChartForm form = new ChartForm { MdiParent = this }; form.Show(); } else { MdiChildren.First(c => c.Name == "ChartForm").Activate(); } } private void nbi_report_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e) { if (!MdiChildren.Any(c => c.Name == "ReportForm")) { ReportForm form = new ReportForm { MdiParent = this }; form.Show(); } else { MdiChildren.First(c => c.Name == "ReportForm").Activate(); } } private void nbi_entrance_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e) { if (!MdiChildren.Any(c => c.Name == "EntranceForm")) { EntranceForm form = new EntranceForm { MdiParent = this, currentUser = Operator }; form.Show(); } else { MdiChildren.First(c => c.Name == "EntranceForm").Activate(); } } private SplashScreenManager _loadForm; /// /// 等待窗体管理对象 /// protected SplashScreenManager LoadForm { get { if (_loadForm == null) { _loadForm = new SplashScreenManager(this, typeof(FrmWaitForm), true, true) { ClosingDelay = 0 }; } return _loadForm; } } /// /// 显示等待窗体 /// public void ShowMessage() { bool flag = !LoadForm.IsSplashFormVisible; if (flag) { LoadForm.ShowWaitForm(); } } /// /// 关闭等待窗体 /// public void HideMessage() { bool isSplashFormVisible = LoadForm.IsSplashFormVisible; if (isSplashFormVisible) { LoadForm.CloseWaitForm(); } } private void btn_help_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { Help.ShowHelp(this, helpProvider1.HelpNamespace); } private void MainForm_Resize(object sender, EventArgs e) { if (WindowState != FormWindowState.Minimized) { if (Width <= 1024) { navBarControl1.Width = 177; } else { navBarControl1.Width = 241; } } } private void Exit_ToolStripMenuItem_Click(object sender, EventArgs e) { if (MessageBox.Show("退出后将无法计量称重数据,是否确认退出程序?", "退出", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { DialogResult = DialogResult.Cancel; // 关闭所有的线程 Dispose(); Close(); } } private void Main_ToolStripMenuItem_Click(object sender, EventArgs e) { DialogResult = DialogResult.Ignore; ShowInTaskbar = true; //还原窗体显示 WindowState = FormWindowState.Maximized; //激活窗体并给予它焦点 Activate(); } protected override void OnClosing(CancelEventArgs e) { if (DialogResult == DialogResult.Cancel) { e.Cancel = true; WindowState = FormWindowState.Minimized; ShowInTaskbar = false; notifyIcon1.Visible = true; } else { e.Cancel = true; } } private void notifyIcon1_MouseClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { DialogResult = DialogResult.Ignore; ShowInTaskbar = true; notifyIcon1.Visible = false; //还原窗体显示 WindowState = FormWindowState.Maximized; //激活窗体并给予它焦点 Activate(); } } } }