FormHOZMain.cs 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. using FileManager;
  2. using MeasureData;
  3. using MeasureThread;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.ComponentModel;
  7. using System.Data;
  8. using System.Drawing;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. using System.Windows.Forms;
  13. namespace HOZProject
  14. {
  15. public partial class FormHOZMain : Form
  16. {
  17. #region 成员变量
  18. private BackgroundWorker m_BackgroundWorker;// 申明后台对象
  19. /// <summary>
  20. /// 测量文件
  21. /// </summary>
  22. public MeasureFile m_MeasureFile;
  23. /// 测量线程
  24. public Measure m_Ms;
  25. #endregion
  26. #region 构造函数
  27. public FormHOZMain()
  28. {
  29. InitializeComponent();
  30. m_BackgroundWorker = new BackgroundWorker(); // 实例化后台对象
  31. m_BackgroundWorker.WorkerReportsProgress = true; // 设置可以通告进度
  32. m_BackgroundWorker.WorkerSupportsCancellation = true; // 设置可以取消
  33. m_BackgroundWorker.DoWork += new DoWorkEventHandler(DoWork);
  34. m_BackgroundWorker.ProgressChanged += new ProgressChangedEventHandler(UpdateProgress);
  35. m_BackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(CompletedWork);
  36. LogManager.InitManulLog();
  37. }
  38. #endregion
  39. #region 测量线程
  40. void DoWork(object sender, DoWorkEventArgs e)
  41. {
  42. m_Ms = new Measure();
  43. m_Ms.InitMeas(m_MeasureFile);
  44. m_Ms.SendThreadStatus += new ThreadStatusHandler(displayMessage); //注册事件
  45. //自动测量的全过程
  46. m_Ms.DoMeasure();
  47. //定位
  48. //切割
  49. //分析位置
  50. //截面
  51. }
  52. public void displayMessage(object sender, ThreadStatusEventArgs e)
  53. {
  54. //主界面显示内容
  55. this.BeginInvoke((Action)delegate
  56. {
  57. this.listmsg.Items.Add(e.Time.ToString() + e.State);
  58. });
  59. }
  60. void UpdateProgress(object sender, ProgressChangedEventArgs e)
  61. {
  62. }
  63. void CompletedWork(object sender, RunWorkerCompletedEventArgs e)
  64. {
  65. }
  66. #endregion
  67. private void FormHOZMain_Load(object sender, EventArgs e)
  68. {
  69. //CreateCutHoleList(5);
  70. //加载控件的点击事件
  71. this.Click += new EventHandler(FormHOZMain_Click);
  72. plFill.Click += new EventHandler(FormHOZMain_Click);
  73. plTop.Click += new EventHandler(FormHOZMain_Click);
  74. plLeft.Click += new EventHandler(FormHOZMain_Click);
  75. plLeftContent.Click += new EventHandler(FormHOZMain_Click);
  76. }
  77. public void CreateCutHoleList(int cutHoleCount)
  78. {
  79. //清空左侧Panel中的切孔控件
  80. plLeftContent.Controls.Clear();
  81. for (int i = 0; i < cutHoleCount; i++)
  82. {
  83. UControl_CutHole ucCutHole = new UControl_CutHole(this);
  84. ucCutHole.Dock = DockStyle.Top;
  85. ucCutHole.CutHoleName = "切孔" + (i + 1);
  86. plLeftContent.Controls.Add(ucCutHole);
  87. }
  88. }
  89. private void FormHOZMain_Click(object sender, EventArgs e)
  90. {
  91. if (plProcess.Visible)
  92. {
  93. plProcess.Visible = false;
  94. }
  95. }
  96. #region 窗体 最大化 最小化 关闭 按钮事件
  97. private void pbMin_MouseEnter(object sender, EventArgs e)
  98. {
  99. this.pbMin.BackgroundImage = global::HOZProject.Properties.Resources.Min_Blue;
  100. }
  101. private void pbMin_MouseLeave(object sender, EventArgs e)
  102. {
  103. this.pbMin.BackgroundImage = global::HOZProject.Properties.Resources.Min_Gray;
  104. }
  105. private void pbClose_MouseEnter(object sender, EventArgs e)
  106. {
  107. this.pbClose.BackgroundImage = global::HOZProject.Properties.Resources.exit_Red;
  108. }
  109. private void pbClose_MouseLeave(object sender, EventArgs e)
  110. {
  111. this.pbClose.BackgroundImage = global::HOZProject.Properties.Resources.exit_Gray;
  112. }
  113. private void pbClose_Click(object sender, EventArgs e)
  114. {
  115. this.Close();
  116. }
  117. private void pbMin_Click(object sender, EventArgs e)
  118. {
  119. this.WindowState = FormWindowState.Minimized;
  120. }
  121. private void pbMax_Click(object sender, EventArgs e)
  122. {
  123. if (this.WindowState == FormWindowState.Maximized)
  124. {
  125. this.WindowState = FormWindowState.Normal;
  126. }
  127. else
  128. {
  129. this.WindowState = FormWindowState.Maximized;
  130. }
  131. //窗体据中
  132. this.StartPosition = FormStartPosition.CenterScreen;
  133. }
  134. #endregion
  135. #region 新建、保存、打开、初始化、查看日志
  136. private void pbNew_Click(object sender, EventArgs e)
  137. {
  138. m_MeasureFile = new MeasureFile();
  139. if (!m_MeasureFile.New())
  140. {
  141. return;
  142. }
  143. else
  144. {
  145. MessageBox.Show("新建测量文件成功。");
  146. }
  147. }
  148. private void pbSave_Click(object sender, EventArgs e)
  149. {
  150. if (m_MeasureFile == null)
  151. {
  152. MessageBox.Show("请新建一个测量文件");
  153. }
  154. else
  155. {
  156. m_MeasureFile.Save();
  157. }
  158. }
  159. private void pbOpen_Click(object sender, EventArgs e)
  160. {
  161. }
  162. private void pbInit_Click(object sender, EventArgs e)
  163. {
  164. Form form = new Form();
  165. form.StartPosition = FormStartPosition.CenterScreen;
  166. UControl_Init uControl_Init = new UControl_Init(this);
  167. form.FormBorderStyle = FormBorderStyle.None;
  168. form.Width = uControl_Init.Width;
  169. form.Height = uControl_Init.Height;
  170. form.Controls.Add(uControl_Init);
  171. form.ShowDialog();
  172. }
  173. private void pbLog_Click(object sender, EventArgs e)
  174. {
  175. Form form = new Form();
  176. form.StartPosition = FormStartPosition.CenterScreen;
  177. UControl_Log uControl_Log = new UControl_Log();
  178. form.FormBorderStyle = FormBorderStyle.None;
  179. form.Width = uControl_Log.Width;
  180. form.Height = uControl_Log.Height;
  181. form.Controls.Add(uControl_Log);
  182. form.ShowDialog();
  183. }
  184. #endregion
  185. #region 开始、结束线程事件
  186. private void pbStart_Click(object sender, EventArgs e)
  187. {
  188. if (m_MeasureFile == null)
  189. {
  190. MessageBox.Show("请新建一个测量文件");
  191. //listmsg.Items.Clear();
  192. }
  193. else
  194. {
  195. if (m_BackgroundWorker.IsBusy)
  196. {
  197. MessageBox.Show("线程已经运行");
  198. return;
  199. }
  200. m_BackgroundWorker.RunWorkerAsync(this);
  201. }
  202. }
  203. private void pbStop_Click(object sender, EventArgs e)
  204. {
  205. if (m_BackgroundWorker.IsBusy)
  206. {
  207. m_BackgroundWorker.CancelAsync();
  208. }
  209. }
  210. #endregion
  211. }
  212. }