using FileManager; using MeasureData; using MeasureThread; 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; namespace HOZProject { public partial class FormHOZMain : Form { #region 成员变量 private BackgroundWorker m_BackgroundWorker;// 申明后台对象 /// /// 测量文件 /// public MeasureFile m_MeasureFile; /// 测量线程 public Measure m_Ms; #endregion #region 构造函数 public FormHOZMain() { InitializeComponent(); m_BackgroundWorker = new BackgroundWorker(); // 实例化后台对象 m_BackgroundWorker.WorkerReportsProgress = true; // 设置可以通告进度 m_BackgroundWorker.WorkerSupportsCancellation = true; // 设置可以取消 m_BackgroundWorker.DoWork += new DoWorkEventHandler(DoWork); m_BackgroundWorker.ProgressChanged += new ProgressChangedEventHandler(UpdateProgress); m_BackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(CompletedWork); LogManager.InitManulLog(); } #endregion #region 测量线程 void DoWork(object sender, DoWorkEventArgs e) { m_Ms = new Measure(); m_Ms.InitMeas(m_MeasureFile); m_Ms.SendThreadStatus += new ThreadStatusHandler(displayMessage); //注册事件 //自动测量的全过程 m_Ms.DoMeasure(); //定位 //切割 //分析位置 //截面 } public void displayMessage(object sender, ThreadStatusEventArgs e) { //主界面显示内容 this.BeginInvoke((Action)delegate { //this.listmsg.Items.Add(e.Time.ToString() + e.State); }); } void UpdateProgress(object sender, ProgressChangedEventArgs e) { } void CompletedWork(object sender, RunWorkerCompletedEventArgs e) { } #endregion private void FormHOZMain_Load(object sender, EventArgs e) { //CreateCutHoleList(5); //加载控件的点击事件 this.Click += new EventHandler(FormHOZMain_Click); plFill.Click += new EventHandler(FormHOZMain_Click); plTop.Click += new EventHandler(FormHOZMain_Click); plLeft.Click += new EventHandler(FormHOZMain_Click); plLeftContent.Click += new EventHandler(FormHOZMain_Click); } public void CreateCutHoleList(int cutHoleCount) { for (int i = 0; i < cutHoleCount; i++) { UControl_CutHole ucCutHole = new UControl_CutHole(this); ucCutHole.Dock = DockStyle.Top; ucCutHole.CutHoleName = "切孔" + (i + 1); plLeftContent.Controls.Add(ucCutHole); } } private void FormHOZMain_Click(object sender, EventArgs e) { if (plProcess.Visible) { plProcess.Visible = false; } } #region 窗体 最大化 最小化 关闭 按钮事件 private void pbMin_MouseEnter(object sender, EventArgs e) { this.pbMin.BackgroundImage = global::HOZProject.Properties.Resources.Min_Blue; } private void pbMin_MouseLeave(object sender, EventArgs e) { this.pbMin.BackgroundImage = global::HOZProject.Properties.Resources.Min_Gray; } private void pbClose_MouseEnter(object sender, EventArgs e) { this.pbClose.BackgroundImage = global::HOZProject.Properties.Resources.exit_Red; } private void pbClose_MouseLeave(object sender, EventArgs e) { this.pbClose.BackgroundImage = global::HOZProject.Properties.Resources.exit_Gray; } private void pbClose_Click(object sender, EventArgs e) { this.Close(); } private void pbMin_Click(object sender, EventArgs e) { this.WindowState = FormWindowState.Minimized; } private void pbMax_Click(object sender, EventArgs e) { if (this.WindowState == FormWindowState.Maximized) { this.WindowState = FormWindowState.Normal; } else { this.WindowState = FormWindowState.Maximized; } //窗体据中 this.StartPosition = FormStartPosition.CenterScreen; } #endregion #region 新建、保存、打开、初始化、查看日志 private void pbNew_Click(object sender, EventArgs e) { m_MeasureFile = new MeasureFile(); if (!m_MeasureFile.New()) { return; } else { MessageBox.Show("新建测量文件成功。"); } } private void pbSave_Click(object sender, EventArgs e) { if (m_MeasureFile == null) { MessageBox.Show("请新建一个测量文件"); } else { m_MeasureFile.Save(); } } private void pbOpen_Click(object sender, EventArgs e) { } private void pbInit_Click(object sender, EventArgs e) { Form form = new Form(); form.StartPosition = FormStartPosition.CenterScreen; UControl_Init uControl_Init = new UControl_Init(this); form.FormBorderStyle = FormBorderStyle.None; form.Width = uControl_Init.Width; form.Height = uControl_Init.Height; form.Controls.Add(uControl_Init); form.ShowDialog(); } private void pbLog_Click(object sender, EventArgs e) { Form form = new Form(); form.StartPosition = FormStartPosition.CenterScreen; UControl_Log uControl_Log = new UControl_Log(); form.FormBorderStyle = FormBorderStyle.None; form.Width = uControl_Log.Width; form.Height = uControl_Log.Height; form.Controls.Add(uControl_Log); form.ShowDialog(); } #endregion #region 开始、结束线程事件 private void pbStart_Click(object sender, EventArgs e) { if (m_MeasureFile == null) { MessageBox.Show("请新建一个测量文件"); //listmsg.Items.Clear(); } else { if (m_BackgroundWorker.IsBusy) { MessageBox.Show("线程已经运行"); return; } m_BackgroundWorker.RunWorkerAsync(this); } } private void pbStop_Click(object sender, EventArgs e) { if (m_BackgroundWorker.IsBusy) { m_BackgroundWorker.CancelAsync(); } } #endregion } }