diff --git a/DH.Devices.Camera/Do3ThinkCamera.cs b/DH.Devices.Camera/Do3ThinkCamera.cs
index a573bf1..90d2f1c 100644
--- a/DH.Devices.Camera/Do3ThinkCamera.cs
+++ b/DH.Devices.Camera/Do3ThinkCamera.cs
@@ -376,7 +376,7 @@ namespace DH.Devices.Camera
{
dvpStreamState StreamState = new dvpStreamState();
nRet = DVPCamera.dvpGetStreamState(m_handle, ref StreamState);
- Debug.Assert(nRet == dvpStatus.DVP_STATUS_OK);
+ //Debug.Assert(nRet == dvpStatus.DVP_STATUS_OK);
if (StreamState == dvpStreamState.STATE_STARTED)
{
// stop camera
diff --git a/DHSoftware/DHSoftware.csproj b/DHSoftware/DHSoftware.csproj
index 28f25c9..8afdfd0 100644
--- a/DHSoftware/DHSoftware.csproj
+++ b/DHSoftware/DHSoftware.csproj
@@ -12,6 +12,8 @@
WinExe
+
+
diff --git a/DHSoftware/LoginWindow.cs b/DHSoftware/LoginWindow.cs
index 6bec4e3..b4a6b85 100644
--- a/DHSoftware/LoginWindow.cs
+++ b/DHSoftware/LoginWindow.cs
@@ -17,7 +17,19 @@ namespace DHSoftware
button_cancel.Click += Button_cancel_Click;
}
-
+ ///
+ /// 窗体对象实例
+ ///
+ private static LoginWindow _instance;
+ internal static LoginWindow Instance
+ {
+ get
+ {
+ if (_instance == null || _instance.IsDisposed)
+ _instance = new LoginWindow();
+ return _instance;
+ }
+ }
private void Button_cancel_Click(object? sender, EventArgs e)
{
this.Dispose();
diff --git a/DHSoftware/MainWindow.Designer.cs b/DHSoftware/MainWindow.Designer.cs
index 03638ab..ad67f56 100644
--- a/DHSoftware/MainWindow.Designer.cs
+++ b/DHSoftware/MainWindow.Designer.cs
@@ -450,7 +450,7 @@
StartPosition = FormStartPosition.CenterScreen;
Text = "CCD光学筛选系统";
WindowState = FormWindowState.Maximized;
- FormClosed += MainWindow_FormClosed;
+ FormClosing += MainWindow_FormClosing;
Load += MainWindow_Load;
titlebar.ResumeLayout(false);
pageHeader1.ResumeLayout(false);
@@ -503,6 +503,6 @@
private AntdUI.Button btnDeleteProject;
private AntdUI.Button btnAddProject;
private AntdUI.Button btnLoadProject;
- private AntdUI.Select sltProjects;
+ public AntdUI.Select sltProjects;
}
}
\ No newline at end of file
diff --git a/DHSoftware/MainWindow.cs b/DHSoftware/MainWindow.cs
index f9933ca..eafd942 100644
--- a/DHSoftware/MainWindow.cs
+++ b/DHSoftware/MainWindow.cs
@@ -41,13 +41,8 @@ namespace DHSoftware
public partial class MainWindow : AntdUI.Window
{
- private UserControl currControl;
- private bool isUpdatingTabs = false;//用于阻止Tabs更新
- private bool isLight = true;
- private int testCounter = 1;
-
Dictionary> _cameraRelatedDetectionDict = null;
private string _loginName;
@@ -187,21 +182,28 @@ namespace DHSoftware
}
-
+ ///
+ /// 窗体对象实例
+ ///
+ private static MainWindow _instance;
+ internal static MainWindow Instance
+ {
+ get
+ {
+ if (_instance == null)
+ _instance = new MainWindow();
+ return _instance;
+ }
+ }
SegmentedItem itemToHide;
private void InitData()
{
-
itemToHide = segmented1.Items[4];
segmented1.Items.Remove(itemToHide);
- //加载方案
- LoadScheme();
-
-
}
- private void LoadScheme()
+ public void LoadScheme()
{
try
{
@@ -244,6 +246,123 @@ namespace DHSoftware
AntdUI.Message.error(this, ex.Message, autoClose: 3);
}
}
+
+ public void ConnectCamera()
+ {
+ Cameras.Clear();
+ HKCameras.Clear();
+ if (ConfigModel.CameraBaseList.Count > 0)
+ {
+ for (int i = 0; i < ConfigModel.CameraBaseList.Count; i++)
+ {
+ var cameraBase = ConfigModel.CameraBaseList[i];
+ if (cameraBase.CamType == EnumCamType.度申Do3think)
+ {
+ Do3ThinkCamera cam = new Do3ThinkCamera();
+
+ cam.CameraName = cameraBase.CameraName;
+ cam.CameraIP = cameraBase.CameraIP;
+ cam.IsEnabled = cameraBase.IsEnabled;
+ Cameras.Add(cam);
+ //cam.CameraConnect();
+ cam.OnHImageOutput += OnCameraHImageOutput;
+ }
+ else if (cameraBase.CamType == EnumCamType.海康hik)
+ {
+ HikVisionCamera cam = new HikVisionCamera();
+ cam.CameraName = cameraBase.CameraName;
+ cam.CameraIP = cameraBase.CameraIP;
+ cam.IsEnabled = cameraBase.IsEnabled;
+ HKCameras.Add(cam);
+ // cam.CameraConnect();
+ cam.OnHImageOutput += OnCameraHImageOutput;
+ }
+
+ }
+ }
+ }
+
+ public void ConnectPLC()
+ {
+ if (ConfigModel.PLCBaseList.Count > 0)
+ {
+ for (int i = 0; i < ConfigModel.PLCBaseList.Count; i++)
+ {
+ var plcBase = ConfigModel.PLCBaseList[i];
+ if (plcBase.PLCType == EnumPLCType.信捷XC网口)
+ {
+
+ PLC.IP = plcBase.IP;
+ PLC.Enable = plcBase.Enable;
+ PLC.PLCName = plcBase.PLCName;
+ PLC.PLCItemList = plcBase.PLCItemList;
+ PLC.Port = plcBase.Port;
+ PLC.PLCConnect();
+ }
+ }
+
+ }
+ }
+
+ public void InitModel()
+ {
+ Dectection.Clear();
+ _cameraRelatedDetectionDict = new();
+
+ if (ConfigModel.DetectionList.Count > 0)
+ {
+
+ for (int i = 0; i < ConfigModel.DetectionList.Count; i++)
+ {
+ DetectionConfig detectionConfig = ConfigModel.DetectionList[i];
+ var detection = ConfigModel.DetectionList[i];
+ detectionConfig.CameraCollects = detection.CameraCollects;
+ detectionConfig.ModelconfThreshold = detection.ModelconfThreshold;
+ detectionConfig.ModelWidth = detection.ModelWidth;
+ detectionConfig.ModelHeight = detection.ModelHeight;
+ detectionConfig.In_lable_path = detection.In_lable_path;
+ detectionConfig.IsEnabled = detection.IsEnabled;
+ detectionConfig.ShowLocation.X = detection.ShowLocation.X;
+ detectionConfig.ShowLocation.Y = detection.ShowLocation.Y;
+ DetectionConfigs.Add(detectionConfig);
+ }
+ }
+ DetectionConfigs.ForEach(detection =>
+ {
+
+ detection.CameraCollects.ForEach(cam =>
+ {
+ List Dets = new List
+ {
+ detection.Id
+ };
+ if (!_cameraRelatedDetectionDict.ContainsKey(cam.CameraSourceId))
+ {
+ _cameraRelatedDetectionDict.Add(cam.CameraSourceId, Dets);
+ }
+ else
+ {
+ _cameraRelatedDetectionDict[cam.CameraSourceId].Add(detection.Id);
+ }
+
+
+ }
+ );
+ });
+ string inferenceDevice = "CPU";
+
+
+ //
+ _visionEngine = new SimboVisionDriver();
+ _visionEngine.DetectionConfigs = DetectionConfigs;
+
+ //初始化模型 加载模型
+ _visionEngine.Init();
+ CtrlVisionRunBase ctrlVisionRun = new CtrlVisionRunBase(_visionEngine);
+ tabImgDisplay.Controls.Add(ctrlVisionRun);
+
+
+ }
private void BindEventHandler()
{
@@ -378,19 +497,46 @@ namespace DHSoftware
{
}
-
- private void MainWindow_FormClosed(object sender, FormClosedEventArgs e)
+ private bool _isClosing = false; // 状态标志
+ private void MainWindow_FormClosing(object sender, FormClosingEventArgs e)
{
- foreach (var camera in Cameras)
- {
- camera.CameraDisConnect();
+ if (_isClosing) return;
+ _isClosing = true;
+ // 取消默认关闭行为
+ e.Cancel = true;
+
+ // 立即隐藏主窗口
+ this.Hide();
+
+ // 显示关闭界面
+ CloseWindow.Instance.Show();
+ Thread.Sleep(200);
+ try
+ {
+ // 执行关闭操作
+ foreach (var camera in Cameras)
+ {
+ camera.CameraDisConnect();
+ }
+ foreach (var camera in HKCameras)
+ {
+ camera.CameraDisConnect();
+ }
+ PLC.PLCDisConnect();
+ CloseWindow.Instance.Close();// 关闭提示窗口
+ //Application.Exit();
+ System.Environment.Exit(0);
+
+
}
- foreach (var camera in HKCameras)
- {
- //var hk as HikVisionCamera;
- camera.CameraDisConnect();
+ catch (Exception ex)
+ {
+ CloseWindow.Instance.Close();
+
+ System.Environment.Exit(0);
+
}
- PLC.PLCDisConnect();
+
}
private void segmented1_SelectIndexChanged(object sender, EventArgs e)
@@ -435,115 +581,7 @@ namespace DHSoftware
public DateTime startTime;
private void HandleStartButton()
{
- Cameras.Clear();
- HKCameras.Clear();
- Dectection.Clear();
- _cameraRelatedDetectionDict = new();
- //初始化相机 链接相机
- if (ConfigModel.CameraBaseList.Count > 0)
- {
- for (int i = 0; i 0)
- {
- for (int i = 0; i < ConfigModel.PLCBaseList.Count; i++)
- {
- var plcBase = ConfigModel.PLCBaseList[i];
- if(plcBase.PLCType==EnumPLCType.信捷XC网口)
- {
-
- PLC.IP = plcBase.IP;
- PLC.Enable = plcBase.Enable;
- PLC.PLCName = plcBase.PLCName;
- PLC.PLCItemList=plcBase.PLCItemList;
- PLC.Port= plcBase.Port;
- // PLC.PLCConnect();
- }
- }
-
- }
- if (ConfigModel.DetectionList.Count > 0)
- {
-
- for (int i = 0; i < ConfigModel.DetectionList.Count; i++)
- {
- DetectionConfig detectionConfig = ConfigModel.DetectionList[i];
- var detection = ConfigModel.DetectionList[i];
- detectionConfig.CameraCollects = detection.CameraCollects;
- detectionConfig.ModelconfThreshold = detection.ModelconfThreshold;
- detectionConfig.ModelWidth = detection.ModelWidth;
- detectionConfig.ModelHeight = detection.ModelHeight;
- detectionConfig.In_lable_path = detection.In_lable_path;
- detectionConfig.IsEnabled = detection.IsEnabled;
- detectionConfig.ShowLocation.X = detection.ShowLocation.X;
- detectionConfig.ShowLocation.Y = detection.ShowLocation.Y;
- DetectionConfigs.Add(detectionConfig);
- }
- }
- DetectionConfigs.ForEach(detection =>
- {
-
- detection.CameraCollects.ForEach(cam =>
- {
- List Dets = new List
- {
- detection.Id
- };
- if (!_cameraRelatedDetectionDict.ContainsKey(cam.CameraSourceId))
- {
- _cameraRelatedDetectionDict.Add(cam.CameraSourceId, Dets);
- }
- else
- {
- _cameraRelatedDetectionDict[cam.CameraSourceId].Add(detection.Id);
- }
-
-
- }
- );
- });
- string inferenceDevice = "CPU";
-
-
- //
- _visionEngine = new SimboVisionDriver();
- _visionEngine.DetectionConfigs = DetectionConfigs;
-
- //初始化模型 加载模型
- _visionEngine.Init();
- CtrlVisionRunBase ctrlVisionRun = new CtrlVisionRunBase(_visionEngine);
- tabImgDisplay.Controls.Add(ctrlVisionRun);
-
StartProcess();
-
-
-
}
private static int currentRegister = 411; // 初始为 D411
private void StartProcess()
@@ -1441,45 +1479,16 @@ namespace DHSoftware
private void HandleSettingsButton()
{
// Add the code for the "设置" button click here
- // MessageBox.Show("设置按钮按下");
- List listCamBase = new List();
- CameraBase cam1 = new CameraBase
- {
- CameraName = "Cam1",
- CameraIP = "192.168.1.101",
- SerialNumber = "1000001",
- Gain = 60,
- Exposure = 10,
- RotateImage = 0,
- IsEnabled = false,
- };
- CameraBase cam2 = new CameraBase
- {
- CameraName = "Cam2",
- CameraIP = "192.168.1.101",
- SerialNumber = "1000002",
- Gain = 60,
- Exposure = 10,
- RotateImage = 0,
- IsEnabled = false,
- };
- listCamBase.Add(cam1);
- listCamBase.Add(cam2);
-
- SettingWindow settingWindow = new SettingWindow();
- settingWindow.Show();
- //s.cameras = listCamBase;
- //s.Show();
+ SettingWindow.Instance.Show();
}
private void HandleLoginButton()
{
// Add the code for the "登录" button click here
- LoginWindow loginWindow = new LoginWindow();
- loginWindow.Owner = this;
- loginWindow.Show();
+ LoginWindow.Instance.Owner = this;
+ LoginWindow.Instance.Show();
}
private void splitter1_SplitterMoved(object sender, SplitterEventArgs e)
diff --git a/DHSoftware/Program.cs b/DHSoftware/Program.cs
index 754a0e3..cdda570 100644
--- a/DHSoftware/Program.cs
+++ b/DHSoftware/Program.cs
@@ -1,8 +1,11 @@
using System;
using System.Drawing;
using System.Windows.Forms;
+using DH.Commons.Helper;
+using DH.Commons.Models;
using DHSoftware.Utils;
using DHSoftware.Views;
+using Microsoft.VisualBasic.Logging;
namespace DHSoftware
{
@@ -15,20 +18,38 @@ namespace DHSoftware
[STAThread]
static void Main()
{
+ // 必须在第一个窗口创建前调用以下两行
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+
+ // 注册全局异常处理
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
+ // 初始化AntdUI配置
AntdUI.Localization.DefaultLanguage = "zh-CN";
- //若文字不清晰,切换其他渲染方式
AntdUI.Config.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
AntdUI.Config.SetCorrectionTextRendering("Microsoft YaHei UI");
-
- Application.EnableVisualStyles();
- Application.SetCompatibleTextRenderingDefault(false);
AntdUI.Style.Set(AntdUI.Colour.Primary, Color.FromArgb(46, 108, 227));
+
+ // 现在再创建窗口
+ WelcomeWindow.Instance.Show();
+ UpdateStep(0, "正在初始化", true);
+ UpdateStep(10, "正在加载数据库", true);
DatabaseUtil.InitializeDatabase();
- mainWindow = new MainWindow();
- Application.Run(mainWindow);
+ UpdateStep(30, "正在加载解决方案", true);
+ MainWindow.Instance.LoadScheme();
+ UpdateStep(50, "正在连接相机", true);
+ MainWindow.Instance.ConnectCamera();
+ UpdateStep(70, "正在连接PLC", true);
+ MainWindow.Instance.ConnectPLC();
+ UpdateStep(80, "正在加载算法模型", true);
+ MainWindow.Instance.InitModel();
+ UpdateStep(100, "程序初始化完成", true);
+ Thread.Sleep(100);
+ WelcomeWindow.Instance.Close();
+ // 启动主窗口
+ Application.Run(MainWindow.Instance);
}
// 捕获UI线程中的未处理异常
@@ -42,5 +63,22 @@ namespace DHSoftware
{
AntdUI.Notification.error(mainWindow, "未处理的非UI线程异常", e.ToString(), autoClose: 3, align: AntdUI.TAlignFrom.TR);
}
+
+ //更新进度
+ internal static void UpdateStep(int percentValue, string stepMsg, bool succeed)
+ {
+ try
+ {
+ WelcomeWindow.Instance.bar_step.Value = percentValue;
+ WelcomeWindow.Instance.lbl_step.Text = stepMsg + "......";
+ Thread.Sleep(200);
+ Application.DoEvents();
+ }
+ catch (Exception ex)
+ {
+ }
+ }
+
+
}
}
diff --git a/DHSoftware/Utils/DataBaseUtil.cs b/DHSoftware/Utils/DataBaseUtil.cs
index ab624ea..bc048cc 100644
--- a/DHSoftware/Utils/DataBaseUtil.cs
+++ b/DHSoftware/Utils/DataBaseUtil.cs
@@ -21,17 +21,23 @@ namespace DHSoftware.Utils
EnsureDirectoryExists();
using (var db = GetDatabase())
{
- // 创建所有表
- db.CodeFirst.InitTables(
- typeof(User),
- typeof(Role),
- typeof(Permission),
- typeof(UserRole),
- typeof(RolePermission)
- );
+ // 检查初始化状态(通过检查是否存在系统表)
+ bool isInitialized = db.DbMaintenance.IsAnyTable("RolePermission");
- // 初始化基础数据
- InitializeSeedData(db);
+ if (!isInitialized)
+ {
+ // 创建所有表
+ db.CodeFirst.InitTables(
+ typeof(User),
+ typeof(Role),
+ typeof(Permission),
+ typeof(UserRole),
+ typeof(RolePermission)
+ );
+
+ // 初始化基础数据
+ InitializeSeedData(db);
+ }
}
}
diff --git a/DHSoftware/Views/CloseWindow.Designer.cs b/DHSoftware/Views/CloseWindow.Designer.cs
new file mode 100644
index 0000000..c8874ea
--- /dev/null
+++ b/DHSoftware/Views/CloseWindow.Designer.cs
@@ -0,0 +1,102 @@
+
+namespace DHSoftware.Views
+{
+ partial class CloseWindow
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CloseWindow));
+ panel1 = new AntdUI.Panel();
+ panel2 = new AntdUI.Panel();
+ spin1 = new AntdUI.Spin();
+ panel1.SuspendLayout();
+ panel2.SuspendLayout();
+ SuspendLayout();
+ //
+ // panel1
+ //
+ panel1.Back = Color.Transparent;
+ panel1.Controls.Add(panel2);
+ panel1.Dock = DockStyle.Fill;
+ panel1.Location = new Point(0, 0);
+ panel1.Name = "panel1";
+ panel1.Size = new Size(280, 124);
+ panel1.TabIndex = 0;
+ panel1.Text = "panel1";
+ //
+ // panel2
+ //
+ panel2.Back = Color.Transparent;
+ panel2.Controls.Add(spin1);
+ panel2.Dock = DockStyle.Fill;
+ panel2.Location = new Point(0, 0);
+ panel2.Name = "panel2";
+ panel2.Radius = 0;
+ panel2.Size = new Size(280, 124);
+ panel2.TabIndex = 4;
+ panel2.Text = "panel2";
+ //
+ // spin1
+ //
+ spin1.Fill = SystemColors.Window;
+ spin1.Font = new Font("Microsoft YaHei UI", 10.5F, FontStyle.Regular, GraphicsUnit.Point, 134);
+ spin1.ForeColor = SystemColors.Window;
+ spin1.Location = new Point(50, 20);
+ spin1.Name = "spin1";
+ spin1.Size = new Size(170, 92);
+ spin1.TabIndex = 0;
+ spin1.Text = "软件正在关闭,请稍候......";
+ //
+ // CloseWindow
+ //
+ AutoScaleDimensions = new SizeF(7F, 17F);
+ AutoScaleMode = AutoScaleMode.Font;
+ BackColor = Color.FromArgb(46, 108, 227);
+ ClientSize = new Size(280, 124);
+ ControlBox = false;
+ Controls.Add(panel1);
+ Icon = (Icon)resources.GetObject("$this.Icon");
+ MaximizeBox = false;
+ MinimizeBox = false;
+ Name = "CloseWindow";
+ ShowIcon = false;
+ StartPosition = FormStartPosition.CenterScreen;
+ Text = "WelcomeForm";
+ panel1.ResumeLayout(false);
+ panel2.ResumeLayout(false);
+ ResumeLayout(false);
+ }
+
+
+
+ #endregion
+
+ private AntdUI.Panel panel1;
+ private AntdUI.Panel panel2;
+ private AntdUI.Spin spin1;
+ }
+}
\ No newline at end of file
diff --git a/DHSoftware/Views/CloseWindow.cs b/DHSoftware/Views/CloseWindow.cs
new file mode 100644
index 0000000..7a00271
--- /dev/null
+++ b/DHSoftware/Views/CloseWindow.cs
@@ -0,0 +1,38 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using AntdUI;
+namespace DHSoftware.Views
+{
+ public partial class CloseWindow : Window
+ {
+ public CloseWindow()
+ {
+ InitializeComponent();
+ Control.CheckForIllegalCrossThreadCalls = false;
+ }
+
+ ///
+ /// 窗体对象实例
+ ///
+ private static CloseWindow _instance;
+ public static CloseWindow Instance
+ {
+ get
+ {
+ if (_instance == null)
+ {
+ _instance = new CloseWindow();
+ }
+ return _instance;
+ }
+ }
+
+ }
+}
diff --git a/DHSoftware/Views/CloseWindow.resx b/DHSoftware/Views/CloseWindow.resx
new file mode 100644
index 0000000..97a5e62
--- /dev/null
+++ b/DHSoftware/Views/CloseWindow.resx
@@ -0,0 +1,382 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ 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
+ AAE+w7t4QMS7/EDEu/9AxLv/QMS7/0DEu/9AxLv/QMS7/0DEu/9AxLv/QMS7/0DEu/9ivI//s6kr/7yn
+ H/+8px//vKcf/7ynH/+rqzT/T8Co/0DEu/9AxLv/QMS7/0DEu/9AxLv/QMS7/0DEu/9AxLv/QMS7/0DE
+ u/9AxLv/QMS837ynH/+8px//vKcf/7ynH/+8px/NuqcdGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAE+w7t4QMS7/EDEu/9AxLv/QMS7/0DEu/9AxLv/QMS7/0DEu/9AxLv/QMS7/0DE
+ u/9cvZj/sKot/7ynH/+8px//vKcf/7ynH/+xqi7/UcCm/0DEu/9AxLv/QMS7/0DEu/9AxLv/QMS7/0DE
+ u/9AxLv/QMS7/0DEu/9AxLv/QMS837ynH/+8px//vKcf/7ynH/+8px/NuqcdGgAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE+w7t4QMS7/EDEu/9AxLv/QMS7/0DEu/9AxLv/QMS7/0DE
+ u/9AxLv/QMS7/0DEu/9bvZj/sKou/7ynH/+8px//vKcf/7ynH/+xqi3/UcCl/0DEu/9AxLv/QMS7/0DE
+ u/9AxLv/QMS7/0DEu/9AxLv/QMS7/0DEu/9AxLv/QMS837ynH/+8px//vKcf/7ynH/+8px/NuqcdGgAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE+w7t4QMS7/EDEu/9AxLv/QMS7/z/E
+ u7E/w7qNP8O6jT/Duo0/w7qNP8O6jT/Duo1wuH2wtqgm+LynH/+8px//vKcf/7ynH/+0qSntWb6cmj/D
+ uo0/w7qNP8O6jT/Duo0/w7qNP8O6jT/Eu5Y/xLvhQMS7/0DEu/9AxLv/QMS837ynH/+8px//vKcf/7yn
+ H/+8px/NuqcdGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE+w7t4QMS7/EDE
+ u/9AxLv/QMS7/0HEvlIzzMwFM8zMBTPMzAUzzMwFM8zMBTPMzAW4qCRku6cf9bynH/+8px//vKcf/7yn
+ H/+8pyDKp6c1HTPMzAUzzMwFM8zMBTPMzAUzzMwFM8zMBUDKvxhAxbu8QMS7/0DEu/9AxLv/QMS837yn
+ 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
+ H/+8px/NuqcdGgAAAAD/gAACwqoYFbqoHUa9pR+DvaYewbyoH+G9qB/yvKcf/rynH/+8px//vKcf/7yn
+ H/+8px//vKcf/7ynH/+8px//vKcf/rumH5q7qiIegIAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEC/vxQ/w7u7QMS7/0DEu/9AxLv/QMS837yn
+ H/+8px//vKcf/7ynH/+7px/tu6gftbunH8i9px/nu6cf/bynH/+8px//vKcf/7ynH/+8px//vKcf/7yn
+ H/+8px//vKcf/7ynH/+8px//vKcf/7yoH/i8px/OvqcdTgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEC/vxQ/w7u7QMS7/0DE
+ u/9AxLv/QMS837ynH/+8px//vKcf/7ynH/+8px//vKcf/7ynH/+8px//vKcf/7ynH/+8px//vKcf/7yn
+ H/+8px//vKcf/7ynH/+8px//vKcf/7ynH/+8px/6vKgfx7ymH3K7qhoeAAAAAQAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEC/
+ vxQ/w7u7QMS7/0DEu/9AxLv/QMS837ynH/+8px//vKcf/7ynH/+8px//vKcf/7ynH/+8px//vKcf/7yn
+ H/+8px//vKcf/7ynH/+8px//vKcf/7ynH/+8px//vKgf/ryoH828pR9buqcdGv+AAAIAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAEC/vxQ/w7u7QMS7/0DEu/9AxLv/QMS837ynH/+8px//vKcf/7ynH/+8px//vKcf/7yn
+ H/+8px//vKcf/7ynH/+8px//vKcf/7ynH/+8px/8vKgf8LynH927px+muaYfQv//AAEAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEC/vxQ/w7u7QMS7/0DEu/9AxLv/QMS837ynH/+8px//vKcf/7yn
+ H/+8px//vKcf/7ynH/+8px//vKcf/7ynH/+8px70u6cf1rymH6+9px+DvKceVL+nICD/gAACAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEC/vxQ/w7u7QMS7/0DEu/9AxLv/QMS837yn
+ H+y8px/3u6Yf+bymH++8px7kvacf172nH8C8px6jvqcffb2qH1G3piEuuacaHb+fIBC/vwAEAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEC/vxQ/w7u7QMS7/0DE
+ u/9AxLv/QMS83wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+
+
+
\ No newline at end of file
diff --git a/DHSoftware/Views/SettingWindow.cs b/DHSoftware/Views/SettingWindow.cs
index 77d33f6..35b584c 100644
--- a/DHSoftware/Views/SettingWindow.cs
+++ b/DHSoftware/Views/SettingWindow.cs
@@ -19,7 +19,19 @@ namespace DHSoftware.Views
InitData();
}
-
+ ///
+ /// 窗体对象实例
+ ///
+ private static SettingWindow _instance;
+ internal static SettingWindow Instance
+ {
+ get
+ {
+ if (_instance == null || _instance.IsDisposed)
+ _instance = new SettingWindow();
+ return _instance;
+ }
+ }
private void BindEventHandler()
{
Resize += SettingWindow1_Resize;
diff --git a/DHSoftware/Views/WelcomeWindow.Designer.cs b/DHSoftware/Views/WelcomeWindow.Designer.cs
index 5f1c7c2..c73290b 100644
--- a/DHSoftware/Views/WelcomeWindow.Designer.cs
+++ b/DHSoftware/Views/WelcomeWindow.Designer.cs
@@ -34,8 +34,8 @@ namespace DHSoftware.Views
panel2 = new AntdUI.Panel();
spin1 = new AntdUI.Spin();
panel3 = new AntdUI.Panel();
- progressBar1 = new ProgressBar();
- label1 = new AntdUI.Label();
+ bar_step = new ProgressBar();
+ lbl_step = new AntdUI.Label();
titlebar = new AntdUI.PageHeader();
panel1.SuspendLayout();
panel2.SuspendLayout();
@@ -81,8 +81,8 @@ namespace DHSoftware.Views
// panel3
//
panel3.Back = Color.Transparent;
- panel3.Controls.Add(progressBar1);
- panel3.Controls.Add(label1);
+ panel3.Controls.Add(bar_step);
+ panel3.Controls.Add(lbl_step);
panel3.Dock = DockStyle.Bottom;
panel3.Location = new Point(0, 309);
panel3.Name = "panel3";
@@ -91,27 +91,27 @@ namespace DHSoftware.Views
panel3.TabIndex = 3;
panel3.Text = "panel3";
//
- // progressBar1
+ // bar_step
//
- progressBar1.Dock = DockStyle.Bottom;
- progressBar1.Location = new Point(0, 54);
- progressBar1.Name = "progressBar1";
- progressBar1.Size = new Size(646, 12);
- progressBar1.TabIndex = 1;
+ bar_step.Dock = DockStyle.Bottom;
+ bar_step.Location = new Point(0, 54);
+ bar_step.Name = "bar_step";
+ bar_step.Size = new Size(646, 12);
+ bar_step.TabIndex = 1;
//
- // label1
+ // lbl_step
//
- label1.Font = new Font("Microsoft YaHei UI", 12F, FontStyle.Regular, GraphicsUnit.Point, 134);
- label1.ForeColor = SystemColors.Window;
- label1.Location = new Point(24, 15);
- label1.Name = "label1";
- label1.Size = new Size(590, 33);
- label1.TabIndex = 0;
- label1.Text = "正在初始化...";
+ lbl_step.Font = new Font("Microsoft YaHei UI", 12F, FontStyle.Regular, GraphicsUnit.Point, 134);
+ lbl_step.ForeColor = SystemColors.Window;
+ lbl_step.Location = new Point(24, 15);
+ lbl_step.Name = "lbl_step";
+ lbl_step.Size = new Size(590, 33);
+ lbl_step.TabIndex = 0;
+ lbl_step.Text = "正在初始化...";
//
// titlebar
//
- titlebar.BackColor = SystemColors.MenuHighlight;
+ titlebar.BackColor = Color.FromArgb(46, 108, 227);
titlebar.DividerShow = true;
titlebar.DividerThickness = 0F;
titlebar.Dock = DockStyle.Top;
@@ -132,7 +132,7 @@ namespace DHSoftware.Views
//
AutoScaleDimensions = new SizeF(7F, 17F);
AutoScaleMode = AutoScaleMode.Font;
- BackColor = SystemColors.MenuHighlight;
+ BackColor = Color.FromArgb(46, 108, 227);
ClientSize = new Size(646, 375);
ControlBox = false;
Controls.Add(panel1);
@@ -158,7 +158,7 @@ namespace DHSoftware.Views
private AntdUI.Panel panel3;
private AntdUI.Panel panel2;
private AntdUI.Spin spin1;
- private AntdUI.Label label1;
- private ProgressBar progressBar1;
+ public AntdUI.Label lbl_step;
+ public ProgressBar bar_step;
}
}
\ No newline at end of file
diff --git a/DHSoftware/Views/WelcomeWindow.cs b/DHSoftware/Views/WelcomeWindow.cs
index cfd7dbd..6bea70f 100644
--- a/DHSoftware/Views/WelcomeWindow.cs
+++ b/DHSoftware/Views/WelcomeWindow.cs
@@ -15,9 +15,22 @@ namespace DHSoftware.Views
public WelcomeWindow()
{
InitializeComponent();
-
-
-
+ Control.CheckForIllegalCrossThreadCalls = false;
}
+
+ ///
+ /// 窗体对象实例
+ ///
+ private static WelcomeWindow _instance;
+ internal static WelcomeWindow Instance
+ {
+ get
+ {
+ if (_instance == null)
+ _instance = new WelcomeWindow();
+ return _instance;
+ }
+ }
+
}
}