FormHOZMain.cs 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  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. for (int i = 0; i < cutHoleCount; i++)
  80. {
  81. UControl_CutHole ucCutHole = new UControl_CutHole(this);
  82. ucCutHole.Dock = DockStyle.Top;
  83. ucCutHole.CutHoleName = "切孔" + (i + 1);
  84. plLeftContent.Controls.Add(ucCutHole);
  85. }
  86. }
  87. private void FormHOZMain_Click(object sender, EventArgs e)
  88. {
  89. if (plProcess.Visible)
  90. {
  91. plProcess.Visible = false;
  92. }
  93. }
  94. #region 窗体 最大化 最小化 关闭 按钮事件
  95. private void pbMin_MouseEnter(object sender, EventArgs e)
  96. {
  97. this.pbMin.BackgroundImage = global::HOZProject.Properties.Resources.Min_Blue;
  98. }
  99. private void pbMin_MouseLeave(object sender, EventArgs e)
  100. {
  101. this.pbMin.BackgroundImage = global::HOZProject.Properties.Resources.Min_Gray;
  102. }
  103. private void pbClose_MouseEnter(object sender, EventArgs e)
  104. {
  105. this.pbClose.BackgroundImage = global::HOZProject.Properties.Resources.exit_Red;
  106. }
  107. private void pbClose_MouseLeave(object sender, EventArgs e)
  108. {
  109. this.pbClose.BackgroundImage = global::HOZProject.Properties.Resources.exit_Gray;
  110. }
  111. private void pbClose_Click(object sender, EventArgs e)
  112. {
  113. this.Close();
  114. }
  115. private void pbMin_Click(object sender, EventArgs e)
  116. {
  117. this.WindowState = FormWindowState.Minimized;
  118. }
  119. private void pbMax_Click(object sender, EventArgs e)
  120. {
  121. if (this.WindowState == FormWindowState.Maximized)
  122. {
  123. this.WindowState = FormWindowState.Normal;
  124. }
  125. else
  126. {
  127. this.WindowState = FormWindowState.Maximized;
  128. }
  129. //窗体据中
  130. this.StartPosition = FormStartPosition.CenterScreen;
  131. }
  132. #endregion
  133. #region 新建、保存、打开、初始化、查看日志
  134. private void pbNew_Click(object sender, EventArgs e)
  135. {
  136. m_MeasureFile = new MeasureFile();
  137. if (!m_MeasureFile.New())
  138. {
  139. return;
  140. }
  141. else
  142. {
  143. MessageBox.Show("新建测量文件成功。");
  144. }
  145. }
  146. private void pbSave_Click(object sender, EventArgs e)
  147. {
  148. if (m_MeasureFile == null)
  149. {
  150. MessageBox.Show("请新建一个测量文件");
  151. }
  152. else
  153. {
  154. m_MeasureFile.Save();
  155. }
  156. }
  157. private void pbOpen_Click(object sender, EventArgs e)
  158. {
  159. }
  160. private void pbInit_Click(object sender, EventArgs e)
  161. {
  162. Form form = new Form();
  163. form.StartPosition = FormStartPosition.CenterScreen;
  164. UControl_Init uControl_Init = new UControl_Init(this);
  165. form.FormBorderStyle = FormBorderStyle.None;
  166. form.Width = uControl_Init.Width;
  167. form.Height = uControl_Init.Height;
  168. form.Controls.Add(uControl_Init);
  169. form.ShowDialog();
  170. }
  171. private void pbLog_Click(object sender, EventArgs e)
  172. {
  173. Form form = new Form();
  174. form.StartPosition = FormStartPosition.CenterScreen;
  175. UControl_Log uControl_Log = new UControl_Log();
  176. form.FormBorderStyle = FormBorderStyle.None;
  177. form.Width = uControl_Log.Width;
  178. form.Height = uControl_Log.Height;
  179. form.Controls.Add(uControl_Log);
  180. form.ShowDialog();
  181. }
  182. #endregion
  183. #region 开始、结束线程事件
  184. private void pbStart_Click(object sender, EventArgs e)
  185. {
  186. if (m_MeasureFile == null)
  187. {
  188. MessageBox.Show("请新建一个测量文件");
  189. //listmsg.Items.Clear();
  190. }
  191. else
  192. {
  193. if (m_BackgroundWorker.IsBusy)
  194. {
  195. MessageBox.Show("线程已经运行");
  196. return;
  197. }
  198. m_BackgroundWorker.RunWorkerAsync(this);
  199. }
  200. }
  201. private void pbStop_Click(object sender, EventArgs e)
  202. {
  203. if (m_BackgroundWorker.IsBusy)
  204. {
  205. m_BackgroundWorker.CancelAsync();
  206. }
  207. }
  208. #endregion
  209. }
  210. }