ProgMgrInfoForm.cs 83 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Windows.Forms;
  5. using System.Text.RegularExpressions;
  6. using System.Collections;
  7. using System.Diagnostics;
  8. using OTSDataType;
  9. using OTSModelSharp;
  10. using System.IO;
  11. using static OTSModelSharp.ResourceManage.ResourceData;
  12. using OTSModelSharp.Measure.GetStageInfo;
  13. using static OTSDataType.otsdataconst;
  14. namespace OTSMeasureApp
  15. {
  16. #region 枚举
  17. /// <summary>
  18. /// 测量终止方式列表
  19. /// </summary>
  20. enum OTS_MEASURE_STOP_MODE
  21. {
  22. CoverMode = 0,
  23. FieldMode = 1,
  24. ParticleMode = 2,
  25. TimeMode = 3,
  26. }
  27. /// <summary>
  28. /// 取图方式列表
  29. /// </summary>
  30. enum OTS_GET_IMAGE_MODE
  31. {
  32. //INVALID = -1,
  33. // MIN = 0,
  34. FROM_CENTER = 0,
  35. UP_TO_DOWN = 1,
  36. DOWN_TO_UP = 2,
  37. RANDOM = 3,
  38. //MAX = 3
  39. }
  40. /// <summary>
  41. /// 扫描图精度列表列表等使用
  42. /// </summary>
  43. enum OTS_THREE_TIES_OPTIONS
  44. {
  45. TIE1 = 0,
  46. TIE2 = 1,
  47. TIE3 = 2,
  48. }
  49. /// <summary>
  50. /// X-ray扫描方式
  51. /// </summary>
  52. enum OTS_X_RAY_SCAN_MODE
  53. {
  54. PointMode = 0,
  55. FeatureMode = 1,
  56. }
  57. /// <summary>
  58. /// 自动去背景方式
  59. /// </summary>
  60. public enum OTS_AUTOBGREMOVETYPE
  61. {
  62. AUTO = 0,
  63. MANUAL = 1,
  64. }
  65. /// <summary>
  66. /// 自动去图方式
  67. /// </summary>
  68. public enum OTS_IMAGE_MODE
  69. {
  70. MIDDLE = 0,
  71. DOWNWARD = 1,
  72. UPWARD = 2,
  73. }
  74. /// <summary>
  75. /// 是否使用X-ray
  76. /// </summary>
  77. enum OTS_USING_X_RAY
  78. {
  79. //INVALID = -1,
  80. //MIN = 0,
  81. YES = 0,
  82. NO = 1,
  83. //MAX = 1
  84. }
  85. /// <summary>
  86. /// 扫描图尺寸列表
  87. /// </summary>
  88. enum OTS_FIVE_TIES_OPTIONS
  89. {
  90. //INVALID = -1,
  91. //MIN = 0,
  92. TIE1 = 0,
  93. TIE2 = 1,
  94. TIE3 = 2,
  95. TIE4 = 3,
  96. TIE5 = 4,
  97. TIE6=5,
  98. TIE7=6
  99. //MAX = 4
  100. }
  101. /// <summary>
  102. /// 精炼工艺下拉选项
  103. /// </summary>
  104. enum OTS_TECHNOLOGY_OPTIONS
  105. {
  106. 通用方法 = 0,
  107. 镁处理 = 1,
  108. 钙处理 = 2,
  109. 稀土处理 = 3
  110. }
  111. enum MEASURE_SHAPE
  112. {
  113. //INVALID = -1,
  114. //MIN = 0,
  115. CIRCLE = 0,
  116. RECT = 1,
  117. //MAX = 1
  118. }
  119. //enum OTS_SOFT_PACKAGE_ID
  120. //{
  121. // OTSIncA = 0, //夹杂物分析
  122. // OTSPartA = 1, //颗粒度分析
  123. //};
  124. /// <summary>
  125. /// 模式选择下拉选项
  126. /// </summary>
  127. enum PropertyDisplayMode
  128. {
  129. ProfessionalMode = 0, //专家模式
  130. NormalMode = 1, //普通模式
  131. };
  132. #endregion
  133. public partial class ProgMgrInfoForm : Form
  134. {
  135. #region 定义变量
  136. //初始化函数功能类
  137. public CStage m_cstage; //样品台类
  138. public CStageParam m_cstagefile; //样品台文件类
  139. public COTSDefaultParam m_cotsprogmgrparamfile; //参数类
  140. public CSEMStageData m_csemstagedata; //SEM样品台处理类
  141. public COTSImgScanPrm m_cotsimgscanprm; //图像扫描类
  142. public COTSGeneralParam m_cgenparam; //一般参数类
  143. public COTSImageProcParam m_cotsimgprocprm; //图像处理类
  144. public COTSXRayParam m_cotsxrayprm;
  145. public bool m_b_checkstagefile = false;
  146. //定位程序管理路径用的变量
  147. public string m_ParameterPath;
  148. //国际化
  149. OTSSysMgrTools.Language lan;
  150. Hashtable table;
  151. NLog.Logger log = NLog.LogManager.GetCurrentClassLogger();
  152. #endregion
  153. /// <summary>
  154. /// 样品台加载
  155. /// </summary>
  156. /// <returns></returns>
  157. public bool StageLoad()
  158. {
  159. if (!m_cstagefile.Load( true, !m_b_checkstagefile))
  160. {
  161. log.Error("(OTSProgMgrInfoFun.StageLoad) 加载样品台信息失败");
  162. return false;
  163. }
  164. return true;
  165. }
  166. #region 构造函数
  167. /// <summary>
  168. /// 默认构造函数
  169. /// </summary>
  170. public ProgMgrInfoForm()
  171. {
  172. m_cotsprogmgrparamfile = new COTSDefaultParam();
  173. m_cstagefile = new CStageParam();
  174. InitializeComponent();
  175. //国际化
  176. lan = new OTSSysMgrTools.Language(this);
  177. table = lan.GetNameTable(this.Name);
  178. }
  179. #endregion
  180. #region 绑定各combobox控件
  181. /// <summary>
  182. /// 绑定各combobox控件下拉列表
  183. /// </summary>
  184. public void BindComboBox()
  185. {
  186. //样品台
  187. if (!StageLoad())
  188. {
  189. this.Close();
  190. return;//加载失败返回
  191. }
  192. //绑定样品台列表信息
  193. BindStageCombobox();
  194. //初始化选项,下拉框---------------------------------------------
  195. //绑定标准库
  196. IDC_COMBO_STDSelect.Items.Clear();
  197. string STDLibFolderName = m_cgenparam.GetPartSTDLibFolderName();
  198. string[] files = System.IO.Directory.GetFiles(STDLibFolderName, "*.db");
  199. System.IO.DirectoryInfo folder = new System.IO.DirectoryInfo(STDLibFolderName);
  200. foreach (System.IO.FileInfo file in folder.GetFiles("*.db"))
  201. {
  202. ComboBoxItem cbi = new ComboBoxItem();
  203. string FileNameWithoutExtension = Path.GetFileNameWithoutExtension(file.FullName);
  204. cbi.Text = FileNameWithoutExtension;
  205. //cbi.Value = (int)enum_one;
  206. IDC_COMBO_STDSelect.Items.Add(cbi);
  207. }
  208. //添加下拉列表中null项
  209. ComboBoxItem cbiNull = new ComboBoxItem();
  210. cbiNull.Text = "NoSTDDB";
  211. //cbi.Value = (int)enum_one;
  212. IDC_COMBO_STDSelect.Items.Add(cbiNull);
  213. this.IDC_COMBO_STDSelect.SelectedIndexChanged -= new System.EventHandler(this.IDC_COMBO_STDSelect_SelectedIndexChanged);
  214. if (IDC_COMBO_STDSelect.Items.Count > 0)
  215. IDC_COMBO_STDSelect.SelectedIndex = 0;
  216. //----------------------------------------------------------------------
  217. this.IDC_COMBO_STDSelect.SelectedIndexChanged += new System.EventHandler(this.IDC_COMBO_STDSelect_SelectedIndexChanged);
  218. //x轴方向
  219. IDC_COMBO_XDIREC.Items.Clear();
  220. foreach (otsdataconst.OTS_X_AXIS_DIRECTION enum_one in Enum.GetValues(typeof(OTS_X_AXIS_DIRECTION)))
  221. {
  222. ComboBoxItem cbi = new ComboBoxItem();
  223. cbi.Text = GetXAxisDirectionIdString(enum_one);
  224. cbi.Value = (int)enum_one;
  225. IDC_COMBO_XDIREC.Items.Add(cbi);
  226. }
  227. this.IDC_COMBO_XDIREC.SelectedIndexChanged -= new System.EventHandler(this.IDC_COMBO_XDIREC_SelectedIndexChanged);
  228. if (IDC_COMBO_XDIREC.Items.Count > 0)
  229. IDC_COMBO_XDIREC.SelectedIndex = 0;
  230. this.IDC_COMBO_XDIREC.SelectedIndexChanged += new System.EventHandler(this.IDC_COMBO_XDIREC_SelectedIndexChanged);
  231. //y轴方向
  232. IDC_COMBO_YDIRECT.Items.Clear();
  233. foreach (otsdataconst.OTS_Y_AXIS_DIRECTION enum_one in Enum.GetValues(typeof(OTS_Y_AXIS_DIRECTION)))
  234. {
  235. ComboBoxItem cbi = new ComboBoxItem();
  236. cbi.Text = GetYAxisDirectionIdString(enum_one);
  237. cbi.Value = (int)enum_one;
  238. IDC_COMBO_YDIRECT.Items.Add(cbi);
  239. }
  240. this.IDC_COMBO_YDIRECT.SelectedIndexChanged -= new System.EventHandler(this.IDC_COMBO_YDIRECT_SelectedIndexChanged);
  241. if (IDC_COMBO_YDIRECT.Items.Count > 0)
  242. IDC_COMBO_YDIRECT.SelectedIndex = 0;
  243. this.IDC_COMBO_YDIRECT.SelectedIndexChanged += new System.EventHandler(this.IDC_COMBO_YDIRECT_SelectedIndexChanged);
  244. //测量终止方式
  245. IDC_COMBO_STOPMODE.Items.Clear();
  246. foreach (otsdataconst.OTS_MEASURE_STOP_MODE enum_one in Enum.GetValues(typeof(OTS_MEASURE_STOP_MODE)))
  247. {
  248. ComboBoxItem cbi = new ComboBoxItem();
  249. cbi.Text = GetStopModeIdString(enum_one);
  250. cbi.Value = (int)enum_one;
  251. IDC_COMBO_STOPMODE.Items.Add(cbi);
  252. }
  253. this.IDC_COMBO_STOPMODE.SelectedIndexChanged -= new System.EventHandler(this.IDC_COMBO_STOPMODE_SelectedIndexChanged);
  254. if (IDC_COMBO_STOPMODE.Items.Count > 0)
  255. IDC_COMBO_STOPMODE.SelectedIndex = 0;
  256. this.IDC_COMBO_STOPMODE.SelectedIndexChanged += new System.EventHandler(this.IDC_COMBO_STOPMODE_SelectedIndexChanged);
  257. //取图方式
  258. IDC_COMBO_FETCHIMGMODE.Items.Clear();
  259. foreach (otsdataconst.OTS_GET_IMAGE_MODE enum_one in Enum.GetValues(typeof(OTS_GET_IMAGE_MODE)))
  260. {
  261. ComboBoxItem cbi = new ComboBoxItem();
  262. cbi.Text = GetGetImageIdString(enum_one);
  263. cbi.Value = (int)enum_one;
  264. IDC_COMBO_FETCHIMGMODE.Items.Add(cbi);
  265. }
  266. this.IDC_COMBO_FETCHIMGMODE.SelectedIndexChanged -= new System.EventHandler(this.IDC_COMBO_FETCHIMGMODE_SelectedIndexChanged);
  267. if (IDC_COMBO_FETCHIMGMODE.Items.Count > 0)
  268. IDC_COMBO_FETCHIMGMODE.SelectedIndex = 0;
  269. this.IDC_COMBO_FETCHIMGMODE.SelectedIndexChanged += new System.EventHandler(this.IDC_COMBO_FETCHIMGMODE_SelectedIndexChanged);
  270. //扫描图精度
  271. IDC_COMBO_IMGSCANSPEED.Items.Clear();
  272. foreach (otsdataconst.OTS_THREE_TIES_OPTIONS enum_one in Enum.GetValues(typeof(OTS_THREE_TIES_OPTIONS)))
  273. {
  274. ComboBoxItem cbi = new ComboBoxItem();
  275. cbi.Text = GetScanSpeedString(enum_one);
  276. cbi.Value = (int)enum_one;
  277. IDC_COMBO_IMGSCANSPEED.Items.Add(cbi);
  278. }
  279. this.IDC_COMBO_IMGSCANSPEED.SelectedIndexChanged -= new System.EventHandler(this.IDC_COMBO_IMGSCANSPEED_SelectedIndexChanged);
  280. if (IDC_COMBO_IMGSCANSPEED.Items.Count > 0)
  281. IDC_COMBO_IMGSCANSPEED.SelectedIndex = 0;
  282. this.IDC_COMBO_IMGSCANSPEED.SelectedIndexChanged += new System.EventHandler(this.IDC_COMBO_IMGSCANSPEED_SelectedIndexChanged);
  283. //扫描图尺寸
  284. IDC_COMBO_IMGSIZE.Items.Clear();
  285. foreach (otsdataconst.OTS_FIVE_TIES_OPTIONS enum_one in Enum.GetValues(typeof(OTS_FIVE_TIES_OPTIONS)))
  286. {
  287. ComboBoxItem cbi = new ComboBoxItem();
  288. cbi.Text = GetImageSizeIdString(enum_one);
  289. cbi.Value = (int)enum_one;
  290. IDC_COMBO_IMGSIZE.Items.Add(cbi);
  291. }
  292. this.IDC_COMBO_IMGSIZE.SelectedIndexChanged -= new System.EventHandler(this.IDC_COMBO_IMGSIZE_SelectedIndexChanged);
  293. if (IDC_COMBO_IMGSIZE.Items.Count > 0)
  294. IDC_COMBO_IMGSIZE.SelectedIndex = 0;
  295. this.IDC_COMBO_IMGSIZE.SelectedIndexChanged += new System.EventHandler(this.IDC_COMBO_IMGSIZE_SelectedIndexChanged);
  296. //搜索X-Ray精度
  297. IDC_COMBO_SEARCHXRAYSPEED.Items.Clear();
  298. foreach (otsdataconst.OTS_THREE_TIES_OPTIONS enum_one in Enum.GetValues(typeof(OTS_THREE_TIES_OPTIONS)))
  299. {
  300. ComboBoxItem cbi = new ComboBoxItem();
  301. cbi.Text = GetXRaySearchSpeedIdString(enum_one);
  302. cbi.Value = (int)enum_one;
  303. IDC_COMBO_SEARCHXRAYSPEED.Items.Add(cbi);
  304. }
  305. this.IDC_COMBO_SEARCHXRAYSPEED.SelectedIndexChanged -= new System.EventHandler(this.IDC_COMBO_SEARCHXRAYSPEED_SelectedIndexChanged);
  306. if (IDC_COMBO_SEARCHXRAYSPEED.Items.Count > 0)
  307. IDC_COMBO_SEARCHXRAYSPEED.SelectedIndex = 0;
  308. this.IDC_COMBO_SEARCHXRAYSPEED.SelectedIndexChanged += new System.EventHandler(this.IDC_COMBO_SEARCHXRAYSPEED_SelectedIndexChanged);
  309. //去背景方式
  310. IDC_COMBO_BGREMOVETYPE.Items.Clear();
  311. foreach (otsdataconst.OTS_AUTOBGREMOVETYPE enum_one in Enum.GetValues(typeof(OTS_AUTOBGREMOVETYPE)))
  312. {
  313. ComboBoxItem cbi = new ComboBoxItem();
  314. cbi.Text = GetBGREMOVETYPEString(enum_one);
  315. cbi.Value = (int)enum_one;
  316. IDC_COMBO_BGREMOVETYPE.Items.Add(cbi);
  317. }
  318. this.IDC_COMBO_BGREMOVETYPE.SelectedIndexChanged -= new System.EventHandler(this.IDC_COMBO_BGREMOVETYPE_SelectedIndexChanged);
  319. if (IDC_COMBO_BGREMOVETYPE.Items.Count > 0)
  320. IDC_COMBO_BGREMOVETYPE.SelectedIndex = 0;
  321. this.IDC_COMBO_BGREMOVETYPE.SelectedIndexChanged += new System.EventHandler(this.IDC_COMBO_BGREMOVETYPE_SelectedIndexChanged);
  322. //自动去背景方式
  323. IDC_COMBO_AUTOBGREMOVETYP.Items.Clear();
  324. foreach (otsdataconst.OTS_IMAGE_MODE enum_one in Enum.GetValues(typeof(OTS_IMAGE_MODE)))
  325. {
  326. ComboBoxItem cbi = new ComboBoxItem();
  327. cbi.Text = GetAUTOBGREMOVETYPEString(enum_one);
  328. cbi.Value = (int)enum_one;
  329. IDC_COMBO_AUTOBGREMOVETYP.Items.Add(cbi);
  330. }
  331. this.IDC_COMBO_AUTOBGREMOVETYP.SelectedIndexChanged -= new System.EventHandler(this.IDC_COMBO_AUTOBGREMOVETYPE_SelectedIndexChanged);
  332. if (IDC_COMBO_AUTOBGREMOVETYP.Items.Count > 0)
  333. IDC_COMBO_AUTOBGREMOVETYP.SelectedIndex = 0;
  334. this.IDC_COMBO_AUTOBGREMOVETYP.SelectedIndexChanged += new System.EventHandler(this.IDC_COMBO_AUTOBGREMOVETYPE_SelectedIndexChanged);
  335. //X-Ray扫描方式
  336. IDC_COMBO_XRAYSCANMODE.Items.Clear();
  337. foreach (otsdataconst.OTS_X_RAY_SCAN_MODE enum_one in Enum.GetValues(typeof(OTS_X_RAY_SCAN_MODE)))
  338. {
  339. ComboBoxItem cbi = new ComboBoxItem();
  340. cbi.Text = GetXRayScanModeIdString(enum_one);
  341. cbi.Value = (int)enum_one;
  342. //只添加点扫描
  343. IDC_COMBO_XRAYSCANMODE.Items.Add(cbi);
  344. }
  345. this.IDC_COMBO_XRAYSCANMODE.SelectedIndexChanged -= new System.EventHandler(this.IDC_COMBO_XRAYSCANMODE_SelectedIndexChanged);
  346. if (IDC_COMBO_XRAYSCANMODE.Items.Count > 0)
  347. IDC_COMBO_XRAYSCANMODE.SelectedIndex = 0;
  348. this.IDC_COMBO_XRAYSCANMODE.SelectedIndexChanged += new System.EventHandler(this.IDC_COMBO_XRAYSCANMODE_SelectedIndexChanged);
  349. //是否使用X-ray
  350. IDC_COMBO_USINGXRAYS.Items.Clear();
  351. foreach (otsdataconst.OTS_USING_X_RAY enum_one in Enum.GetValues(typeof(OTS_USING_X_RAY)))
  352. {
  353. ComboBoxItem cbi = new ComboBoxItem();
  354. cbi.Text = GetUSINGXRAYSIdString(enum_one);
  355. cbi.Value = (int)enum_one;
  356. IDC_COMBO_USINGXRAYS.Items.Add(cbi);
  357. }
  358. this.IDC_COMBO_USINGXRAYS.SelectedIndexChanged -= new System.EventHandler(this.IDC_COMBO_USINGXRAYS_SelectedIndexChanged);
  359. if (IDC_COMBO_USINGXRAYS.Items.Count > 0)
  360. IDC_COMBO_USINGXRAYS.SelectedIndex = 0;
  361. this.IDC_COMBO_USINGXRAYS.SelectedIndexChanged += new System.EventHandler(this.IDC_COMBO_USINGXRAYS_SelectedIndexChanged);
  362. //分析X-Ray精度
  363. IDC_COMBO_ANALYXRAYSPEED.Items.Clear();
  364. foreach (otsdataconst.OTS_THREE_TIES_OPTIONS enum_one in Enum.GetValues(typeof(OTS_THREE_TIES_OPTIONS)))
  365. {
  366. ComboBoxItem cbi = new ComboBoxItem();
  367. cbi.Text = GetXRayAnalySpeedIdString(enum_one);
  368. cbi.Value = (int)enum_one;
  369. IDC_COMBO_ANALYXRAYSPEED.Items.Add(cbi);
  370. }
  371. this.IDC_COMBO_ANALYXRAYSPEED.SelectedIndexChanged -= new System.EventHandler(this.IDC_COMBO_ANALYXRAYSPEED_SelectedIndexChanged);
  372. if (IDC_COMBO_ANALYXRAYSPEED.Items.Count > 0)
  373. IDC_COMBO_ANALYXRAYSPEED.SelectedIndex = 0;
  374. this.IDC_COMBO_ANALYXRAYSPEED.SelectedIndexChanged += new System.EventHandler(this.IDC_COMBO_ANALYXRAYSPEED_SelectedIndexChanged);
  375. //精炼工艺下拉框选项
  376. IDC_COMBO_TECHNOLOGY.Items.Clear();
  377. foreach (OTS_TECHNOLOGY_OPTIONS enum_one in Enum.GetValues(typeof(OTS_TECHNOLOGY_OPTIONS)))
  378. {
  379. ComboBoxItem cbi = new ComboBoxItem();
  380. cbi.Text = GetSteelTechIdString((otsdataconst.STEEL_TECHNOLOGY)enum_one);
  381. cbi.Value = (int)enum_one;
  382. IDC_COMBO_TECHNOLOGY.Items.Add(cbi);
  383. }
  384. this.IDC_COMBO_TECHNOLOGY.SelectedIndexChanged -= new System.EventHandler(this.IDC_COMBO_TECHNOLOGY_SelectedIndexChanged);
  385. if (IDC_COMBO_TECHNOLOGY.Items.Count > 0)
  386. IDC_COMBO_TECHNOLOGY.SelectedIndex = 0;
  387. this.IDC_COMBO_TECHNOLOGY.SelectedIndexChanged += new System.EventHandler(this.IDC_COMBO_TECHNOLOGY_SelectedIndexChanged);
  388. //测量区域形状
  389. cBMeasShape.Items.Clear();
  390. foreach (otsdataconst.MEASURE_SHAPE enum_one in Enum.GetValues(typeof(MEASURE_SHAPE)))
  391. {
  392. ComboBoxItem cbi = new ComboBoxItem();
  393. cbi.Text = GetAreaShapeString(enum_one);
  394. cbi.Value = (int)enum_one;
  395. cBMeasShape.Items.Add(cbi);
  396. }
  397. this.cBMeasShape.SelectedIndexChanged -= new System.EventHandler(this.cBMeasShape_SelectedIndexChanged);
  398. if (cBMeasShape.Items.Count > 0)
  399. cBMeasShape.SelectedIndex = 0;
  400. this.cBMeasShape.SelectedIndexChanged += new System.EventHandler(this.cBMeasShape_SelectedIndexChanged);
  401. //模式选择
  402. IDC_COMBO_Model.Items.Clear();
  403. foreach (otsdataconst.StartModel enum_one in Enum.GetValues(typeof(PropertyDisplayMode)))
  404. {
  405. OTSPeriodicTable.ComboBoxItem cbi = new OTSPeriodicTable.ComboBoxItem();
  406. cbi.Text = GetModelString(enum_one);
  407. cbi.Value = (int)enum_one;
  408. IDC_COMBO_Model.Items.Add(cbi);
  409. }
  410. this.IDC_COMBO_Model.SelectedIndexChanged -= new System.EventHandler(this.IDC_COMBO_Model_SelectedIndexChanged);
  411. if (IDC_COMBO_Model.Items.Count > 0)
  412. IDC_COMBO_Model.SelectedIndex = 0;
  413. this.IDC_COMBO_Model.SelectedIndexChanged += new System.EventHandler(this.IDC_COMBO_Model_SelectedIndexChanged);
  414. }
  415. public CStage GetWorkingStage()
  416. {
  417. CStage ls_cstageclr = m_cstagefile.GetWorkingStage();
  418. if (null == ls_cstageclr)
  419. {
  420. log.Error("(OTSProgMgrInfoFun.GetWorkingStage) 获取正在工作的样品台类失败");
  421. return ls_cstageclr;
  422. }
  423. return ls_cstageclr;
  424. }
  425. /// <summary>
  426. /// 获取正在工作的样品台ID
  427. /// </summary>
  428. /// <returns></returns>
  429. public int GetWorkingStageId()
  430. {
  431. int stageid = m_cstagefile.GetWorkingStageId();
  432. return stageid;
  433. }
  434. /// <summary>
  435. /// 获取样品台信息列表
  436. /// </summary>
  437. /// <returns></returns>
  438. public List<CStage> GetStageList()
  439. {
  440. List<CStage> l_cstageclr = m_cstagefile.GetStagesList();
  441. if (null == l_cstageclr)
  442. {
  443. log.Error("(OTSProgMgrInfoFun.GetStageList) 获取样品台信息列表失败");
  444. return l_cstageclr;
  445. }
  446. return l_cstageclr;
  447. }
  448. /// <summary>
  449. /// 绑定样品台列表信息
  450. /// </summary>
  451. private void BindStageCombobox()
  452. {
  453. //先插入正在工作的样品台
  454. int ls_workingstageid = 0;
  455. IDC_COMBO_STAGE.Items.Clear();
  456. CStage ls_cstageclr = GetWorkingStage();
  457. ComboBoxItem ls_cbi = new ComboBoxItem();
  458. ls_cbi.Text = ls_cstageclr.GetName();
  459. ls_workingstageid = GetWorkingStageId();
  460. ls_cbi.Value = ls_workingstageid;
  461. IDC_COMBO_STAGE.Items.Add(ls_cbi);
  462. //添加其它的样品台信息
  463. List<CStage> l_cstageclr = GetStageList();
  464. for (int i = 0; i < l_cstageclr.Count(); i++)
  465. {
  466. if (ls_workingstageid != i)//将已经插入过的正在工作样品台信息跳过去
  467. {
  468. ComboBoxItem cbi = new ComboBoxItem();
  469. cbi.Text = l_cstageclr[i].GetName().ToString();
  470. cbi.Value = i.ToString();
  471. IDC_COMBO_STAGE.Items.Add(cbi);
  472. }
  473. }
  474. //防止进入窗体后,马上进入下拉项选择事件,先把事件去掉,一会再注册上
  475. this.IDC_COMBO_STAGE.SelectedIndexChanged -= new System.EventHandler(this.IDC_COMBO_STAGE_SelectedIndexChanged);
  476. //默认选择上
  477. if (IDC_COMBO_STAGE.Items.Count > 0)
  478. {
  479. IDC_COMBO_STAGE.SelectedIndex = 0;
  480. }
  481. this.IDC_COMBO_STAGE.SelectedIndexChanged += new System.EventHandler(this.IDC_COMBO_STAGE_SelectedIndexChanged);
  482. }
  483. #endregion
  484. #region 参数相关方法封装
  485. /// <summary>
  486. /// 读取SEM样品台参数信息
  487. /// </summary>
  488. public void LoadSEMStageData()
  489. {
  490. //100倍时屏幕尺寸/mm
  491. IDC_EDIT_SCREENWIDTH.Text = m_csemstagedata.GetScanFieldSize100().ToString();
  492. //x轴方向
  493. foreach (ComboBoxItem cbi in IDC_COMBO_XDIREC.Items)
  494. {
  495. if (cbi.Value.ToString() != "")
  496. if (Convert.ToInt32(cbi.Value) == (int)m_csemstagedata.GetXAxisDir())
  497. {
  498. IDC_COMBO_XDIREC.SelectedItem = cbi;
  499. }
  500. }
  501. //x轴行程/mm 起,取值时,乘1000
  502. IDC_EDIT_XSTART.Text = (m_csemstagedata.GetXAxis().GetStart() / 1000).ToString();
  503. //x轴行程/mm 始
  504. IDC_EDIT_XEND.Text = (m_csemstagedata.GetXAxis().GetEnd() / 1000).ToString();
  505. //y轴方向
  506. foreach (ComboBoxItem cbi in IDC_COMBO_YDIRECT.Items)
  507. {
  508. if (cbi.Value.ToString() != "")
  509. if (Convert.ToInt32(cbi.Value) == (int)m_csemstagedata.GetYAxisDir())
  510. {
  511. IDC_COMBO_YDIRECT.SelectedItem = cbi;
  512. }
  513. }
  514. //y轴行程/mm 起
  515. IDC_EDIT_YSTART.Text = (m_csemstagedata.GetYAxis().GetStart() / 1000).ToString();
  516. //y轴行程/mm 始
  517. IDC_EDIT_YEND.Text = (m_csemstagedata.GetYAxis().GetEnd() / 1000).ToString();
  518. //最小放大倍数
  519. IDC_EDIT_MINMAG.Text = m_csemstagedata.GetMinMag().ToString();
  520. }
  521. /// <summary>
  522. /// 加载图像扫描参数
  523. /// </summary>
  524. public void LoadImageScanPrm()
  525. {
  526. //测量终止方式
  527. foreach (ComboBoxItem cbi in IDC_COMBO_STOPMODE.Items)
  528. {
  529. if (cbi.Value.ToString() != "")
  530. if (Convert.ToInt32(cbi.Value) == (int)m_cotsimgscanprm.GetStopMode())
  531. {
  532. IDC_COMBO_STOPMODE.SelectedItem = cbi;
  533. }
  534. }
  535. //终止时间
  536. IDC_EDIT_STOP_TIME.Text = m_cotsimgscanprm.GetStopParamMeasTime().ToString();
  537. //终止帧图数
  538. IDC_EDIT_STOP_FIELD_NUM.Text = m_cotsimgscanprm.GetStopParamFields().ToString();
  539. //终止夹杂物数
  540. IDC_EDIT_STOP_INCA_NUM.Text = m_cotsimgscanprm.GetStopParamParticles().ToString();
  541. //取图方式
  542. foreach (ComboBoxItem cbi in IDC_COMBO_FETCHIMGMODE.Items)
  543. {
  544. if (cbi.Value.ToString() != "")
  545. if (Convert.ToInt32(cbi.Value) == (int)m_cotsimgscanprm.GetFieldStartMode())
  546. {
  547. IDC_COMBO_FETCHIMGMODE.SelectedItem = cbi;
  548. }
  549. }
  550. //扫描图精度
  551. foreach (ComboBoxItem cbi in IDC_COMBO_IMGSCANSPEED.Items)
  552. {
  553. if (cbi.Value.ToString() != "")
  554. if (Convert.ToInt32(cbi.Value) == (int)m_cotsimgscanprm.GetScanImageSpeed())
  555. {
  556. IDC_COMBO_IMGSCANSPEED.SelectedItem = cbi;
  557. }
  558. }
  559. //扫描图尺寸
  560. foreach (ComboBoxItem cbi in IDC_COMBO_IMGSIZE.Items)
  561. {
  562. if (cbi.Value.ToString() != "")
  563. if (Convert.ToInt32(cbi.Value) == (int)m_cotsimgscanprm.GetImagePixelSize())
  564. {
  565. IDC_COMBO_IMGSIZE.SelectedItem = cbi;
  566. }
  567. }
  568. IDC_STOP_MODE_SWITCH.Checked = m_cotsimgscanprm.GetShowStopMode();
  569. IDC_STOP_TIME_SWITCH.Checked = m_cotsimgscanprm.GetShowMeasTime();
  570. IDC_STOP_FIELD_SWITCH.Checked = m_cotsimgscanprm.GetShowParamFields();
  571. IDC_STOP_PARTICAL_SWITCH.Checked = m_cotsimgscanprm.GetShowParticles();
  572. IDC_FETCH_IMAGE_SWITCH.Checked = m_cotsimgscanprm.GetShowStartImageMode();
  573. IDC_SCAN_SPEED_SWITCH.Checked = m_cotsimgscanprm.GetShowImageSpeed();
  574. IDC_IMAGE_SIZE_SWITCH.Checked = m_cotsimgscanprm.GetShowPixelSize();
  575. }
  576. /// <summary>
  577. /// 加载一般常规参数
  578. /// </summary>
  579. public void LoadCGenParam()
  580. {
  581. //样品名
  582. IDC_EDIT_SAMPLENAME.Text = m_cgenparam.GetSampleName().ToString();
  583. //执行开关
  584. IDC_MEAS_SWITCH.Checked = m_cgenparam.GetMeasurementSwitch();
  585. //是否使用系统库开关
  586. IDC_SYS_LIB.Checked = m_cgenparam.GetSysSTD();
  587. //测量参数文件夹
  588. IDC_EDIT_MEASUREPARAMPATH.Text = m_cgenparam.GetMsrParamFileFolderName().ToString();
  589. //颗粒分析标准库文件夹
  590. IDC_EDIT_ANALYSESTDLIBPATH.Text = m_cgenparam.GetPartSTDLibFolderName().ToString();
  591. //选择颗粒分析标准库
  592. foreach (ComboBoxItem cbi in IDC_COMBO_TECHNOLOGY.Items)
  593. {
  594. if (cbi.Value.ToString() != "")
  595. if (Convert.ToInt32(cbi.Value) == m_cgenparam.GetPartStdLibTypeIndex())
  596. {
  597. //IDC_COMBO_TECHNOLOGY.SelectedItem = cbi;
  598. }
  599. }
  600. //精炼工艺选项
  601. foreach (ComboBoxItem cbi in IDC_COMBO_TECHNOLOGY.Items)
  602. {
  603. if (cbi.Value.ToString() != "")
  604. if (Convert.ToInt32(cbi.Value) == m_cgenparam.GetSteelTechnology())
  605. {
  606. IDC_COMBO_TECHNOLOGY.SelectedItem = cbi;
  607. }
  608. }
  609. //测量区域形状
  610. foreach (ComboBoxItem cbi in cBMeasShape.Items)
  611. {
  612. if (cbi.Value.ToString() != "")
  613. if (Convert.ToInt32(cbi.Value) == (int)m_cgenparam.GetShape())
  614. {
  615. cBMeasShape.SelectedItem = cbi;
  616. }
  617. }
  618. //测量区域面积
  619. tBMeasArea.Text = m_cgenparam.GetArea().ToString();
  620. //标准库选择
  621. foreach (ComboBoxItem cbi in IDC_COMBO_STDSelect.Items)
  622. {
  623. if (cbi.Text.ToString() != "")
  624. if (cbi.Text.ToString() == m_cgenparam.GetSTDSelect())
  625. {
  626. IDC_COMBO_STDSelect.SelectedItem = cbi;
  627. }
  628. }
  629. //模式
  630. foreach (OTSPeriodicTable.ComboBoxItem cbi in IDC_COMBO_Model.Items)
  631. {
  632. if (cbi.Value.ToString() != "")
  633. if (Convert.ToInt32(cbi.Value) == m_cgenparam.PropertyDisplayMode())
  634. {
  635. IDC_COMBO_Model.SelectedItem = cbi;
  636. }
  637. }
  638. }
  639. /// <summary>
  640. /// 加载图像处理参数
  641. /// </summary>
  642. public void LoadImageProc()
  643. {
  644. //颗粒面积范围 最小
  645. IDC_EDIT_PARTAREAMIN.Text = m_cotsimgprocprm.GetIncAreaRange().GetStart().ToString();
  646. //颗粒面积范围 最大
  647. IDC_EDIT_PARTAREAMAX.Text = m_cotsimgprocprm.GetIncAreaRange().GetEnd().ToString();
  648. //背景灰度范围 最小
  649. IDC_EDIT_BACKMIN.Text = m_cotsimgprocprm.GetBGGray().GetStart().ToString();
  650. //背景灰度范围 最大
  651. IDC_EDIT_BACKMAX.Text = m_cotsimgprocprm.GetBGGray().GetEnd().ToString();
  652. //颗粒灰度范围 最小
  653. IDC_EDIT_PARTMIN.Text = m_cotsimgprocprm.GetParticleGray().GetStart().ToString();
  654. //颗粒灰度范围 最大
  655. IDC_EDIT_PARTMAX.Text = m_cotsimgprocprm.GetParticleGray().GetEnd().ToString();
  656. //去背景方式
  657. foreach (ComboBoxItem cbi in IDC_COMBO_BGREMOVETYPE.Items)
  658. {
  659. if (cbi.Value.ToString() != "")
  660. {
  661. if (Convert.ToInt32(cbi.Value) == (int)m_cotsimgprocprm.GetBGRemoveType())
  662. {
  663. IDC_COMBO_BGREMOVETYPE.SelectedItem = cbi;
  664. break;
  665. }
  666. }
  667. }
  668. foreach (ComboBoxItem cbi in IDC_COMBO_AUTOBGREMOVETYP.Items)
  669. {
  670. if (cbi.Value.ToString() != "")
  671. {
  672. if (Convert.ToInt32(cbi.Value) == (int)m_cotsimgprocprm.GetAutoBGRemoveType())
  673. {
  674. IDC_COMBO_AUTOBGREMOVETYP.SelectedItem = cbi;
  675. break;
  676. }
  677. }
  678. }
  679. IDC_PART_MIN_SWITCH.Checked = m_cotsimgprocprm.GetShowAreaDown();
  680. IDC_PART_MAX_SWITCH.Checked = m_cotsimgprocprm.GetShowAreaUp();
  681. IDC_BACK_MIN_SWITCH.Checked = m_cotsimgprocprm.GetShowBGGrayDown();
  682. IDC_BACK_MAX_SWITCH.Checked = m_cotsimgprocprm.GetShowBGGrayUp();
  683. IDC_PART_GRAY_MIN_SWITCH.Checked = m_cotsimgprocprm.GetShowParticleGrayDown();
  684. IDC_PART_GRAY_MAX_SWITCH.Checked = m_cotsimgprocprm.GetShowParticleGrayUp();
  685. }
  686. /// <summary>
  687. /// 加载X-Ray参数
  688. /// </summary>
  689. public void LoadXRayParam()
  690. {
  691. //搜索X-ray精度
  692. foreach (ComboBoxItem cbi in IDC_COMBO_SEARCHXRAYSPEED.Items)
  693. {
  694. if (cbi.Value.ToString() != "")
  695. if (Convert.ToInt32(cbi.Value) == (int)m_cotsxrayprm.GetSearchSpeed())
  696. {
  697. IDC_COMBO_SEARCHXRAYSPEED.SelectedItem = cbi;
  698. }
  699. }
  700. //搜索X-ray精度对应的时间
  701. IDC_TEXTBOX_SEARCHXRAYSPEED_TIME.Text = m_cotsxrayprm.GetMidSearchAQTime().ToString();
  702. //搜索X-ray最低计数
  703. IDC_EDIT_SEARCHXRAYCOUNTLIMIT.Text = m_cotsxrayprm.GetXRaySearchCount().ToString();
  704. //X-ray扫描方式
  705. foreach (ComboBoxItem cbi in IDC_COMBO_XRAYSCANMODE.Items)
  706. {
  707. if (cbi.Value.ToString() != "")
  708. if (Convert.ToInt32(cbi.Value) == (int)m_cotsxrayprm.GetScanMode())
  709. {
  710. IDC_COMBO_XRAYSCANMODE.SelectedItem = cbi;
  711. }
  712. }
  713. //是否使用电镜
  714. foreach (ComboBoxItem cbi in IDC_COMBO_USINGXRAYS.Items)
  715. {
  716. if (cbi.Value.ToString() != "")
  717. if (Convert.ToInt32(cbi.Value) == (int)m_cotsxrayprm.GetUsingXray())
  718. {
  719. IDC_COMBO_USINGXRAYS.SelectedItem = cbi;
  720. }
  721. }
  722. //分析X-ray精度
  723. foreach (ComboBoxItem cbi in IDC_COMBO_ANALYXRAYSPEED.Items)
  724. {
  725. if (cbi.Value.ToString() != "")
  726. if (Convert.ToInt32(cbi.Value) == (int)m_cotsxrayprm.GetAnalySpeed())
  727. {
  728. IDC_COMBO_ANALYXRAYSPEED.SelectedItem = cbi;
  729. }
  730. }
  731. //分析X-ray精度对应的时间
  732. IDC_TEXTBOX_ANALYXRAYSPEED_TIME.Text = m_cotsxrayprm.GetMidAnalyAQTime().ToString();
  733. //分析X-ray计数期望值
  734. IDC_EDIT_ANALYXRAYAIMVALUE.Text = m_cotsxrayprm.GetAnalyExpCount().ToString();
  735. IDC_XRAY_MODE_SWITCH.Checked = m_cotsxrayprm.GetShowScanMode();
  736. IDC_XRAY_TIME_SWITCH.Checked = m_cotsxrayprm.GetShowSpeed();
  737. IDC_XRAY_COUNT_SWITCH.Checked = m_cotsxrayprm.GetShowExpCount();
  738. }
  739. /// <summary>
  740. /// 保存SEM样品台参数
  741. /// </summary>
  742. public void SaveSEMStageData()
  743. {
  744. //100倍时屏幕尺寸/mm
  745. m_csemstagedata.SetScanFieldSize100(Convert.ToInt32(IDC_EDIT_SCREENWIDTH.Text));
  746. //x轴方向
  747. ComboBoxItem cbi_x = (ComboBoxItem)IDC_COMBO_XDIREC.SelectedItem;
  748. m_csemstagedata.SetXAxisDir((otsdataconst.OTS_X_AXIS_DIRECTION)Convert.ToInt32(cbi_x.Value));
  749. //x轴行程/mm 起,始
  750. CIntRange crc_x = new CIntRange(Convert.ToInt32(IDC_EDIT_XSTART.Text) * 1000, Convert.ToInt32(IDC_EDIT_XEND.Text) * 1000);
  751. m_csemstagedata.SetXAxis(crc_x);
  752. //y轴方向
  753. ComboBoxItem cbi_y = (ComboBoxItem)IDC_COMBO_YDIRECT.SelectedItem;
  754. m_csemstagedata.SetYAxisDir((otsdataconst.OTS_Y_AXIS_DIRECTION)Convert.ToInt32(cbi_y.Value));
  755. //y轴行程/mm 起,始
  756. CIntRange crc_y = new CIntRange(Convert.ToInt32(IDC_EDIT_YSTART.Text) * 1000, Convert.ToInt32(IDC_EDIT_YEND.Text) * 1000);
  757. m_csemstagedata.SetYAxis(crc_y);
  758. //最小放大倍数
  759. m_csemstagedata.SetMinMag(Convert.ToDouble(IDC_EDIT_MINMAG.Text));
  760. }
  761. /// <summary>
  762. /// 保存图像扫描参数
  763. /// </summary>
  764. public void SaveImageScanPrm()
  765. {
  766. // 保存图像扫描参数");
  767. //测量终止方式
  768. ComboBoxItem enum_stopmode = (ComboBoxItem)IDC_COMBO_STOPMODE.SelectedItem;
  769. m_cotsimgscanprm.SetStopMode((otsdataconst.OTS_MEASURE_STOP_MODE)Convert.ToInt32(enum_stopmode.Value));
  770. //终止时间
  771. m_cotsimgscanprm.SetStopParamMeasTime(Convert.ToInt32(IDC_EDIT_STOP_TIME.Text));
  772. //终止帧图数
  773. m_cotsimgscanprm.SetStopParamFields(Convert.ToInt32(IDC_EDIT_STOP_FIELD_NUM.Text));
  774. //终止夹杂物数
  775. m_cotsimgscanprm.SetStopParamParticles(Convert.ToInt32(IDC_EDIT_STOP_INCA_NUM.Text));
  776. //取图方式
  777. ComboBoxItem enum_fetchimgmode = (ComboBoxItem)IDC_COMBO_FETCHIMGMODE.SelectedItem;
  778. m_cotsimgscanprm.SetStartImageMode((otsdataconst.OTS_GET_IMAGE_MODE)Convert.ToInt32(enum_fetchimgmode.Value));
  779. //扫描图精度
  780. ComboBoxItem enum_imgscanspeed = (ComboBoxItem)IDC_COMBO_IMGSCANSPEED.SelectedItem;
  781. m_cotsimgscanprm.SetScanImageSpeed((otsdataconst.OTS_THREE_TIES_OPTIONS)Convert.ToInt32(enum_imgscanspeed.Value));
  782. //扫描图尺寸
  783. ComboBoxItem enum_imgsize = (ComboBoxItem)IDC_COMBO_IMGSIZE.SelectedItem;
  784. m_cotsimgscanprm.SetImagePixelSize((otsdataconst.OTS_FIVE_TIES_OPTIONS)Convert.ToInt32(enum_imgsize.Value));
  785. m_cotsimgscanprm.SetShowStopMode(IDC_STOP_MODE_SWITCH.Checked);
  786. m_cotsimgscanprm.SetShowMeasTime(IDC_STOP_TIME_SWITCH.Checked);
  787. m_cotsimgscanprm.SetShowParamFields(IDC_STOP_FIELD_SWITCH.Checked);
  788. m_cotsimgscanprm.SetShowParticles(IDC_STOP_PARTICAL_SWITCH.Checked);
  789. m_cotsimgscanprm.SetShowStartImageMode(IDC_FETCH_IMAGE_SWITCH.Checked);
  790. m_cotsimgscanprm.SetShowImageSpeed(IDC_SCAN_SPEED_SWITCH.Checked);
  791. m_cotsimgscanprm.SetShowPixelSize(IDC_IMAGE_SIZE_SWITCH.Checked);
  792. }
  793. /// <summary>
  794. /// 保存一般常规参数
  795. /// </summary>
  796. public void SaveCGenParam()
  797. {
  798. //样品名
  799. m_cgenparam.SetSampleName(IDC_EDIT_SAMPLENAME.Text);
  800. //执行开关
  801. m_cgenparam.SetMeasurementSwitch(IDC_MEAS_SWITCH.Checked);
  802. //是否使用系统库
  803. m_cgenparam.SetSysSTD(IDC_SYS_LIB.Checked);
  804. //测量参数文件夹
  805. m_cgenparam.SetMsrParamFileFolderName(IDC_EDIT_MEASUREPARAMPATH.Text);
  806. //颗粒分析标准库文件夹
  807. m_cgenparam.SetPartSTDLibFolderName(IDC_EDIT_ANALYSESTDLIBPATH.Text);
  808. //获取精炼工艺索引
  809. ComboBoxItem cbiTECH = new ComboBoxItem();
  810. cbiTECH = (ComboBoxItem)IDC_COMBO_TECHNOLOGY.SelectedItem;
  811. //设置参数文件类中精炼工艺索引值
  812. m_cgenparam.SetSteelTechnology((int)cbiTECH.Value);
  813. //测量区域形状
  814. ComboBoxItem enum_Shape = (ComboBoxItem)cBMeasShape.SelectedItem;
  815. m_cgenparam.SetShape((otsdataconst.DOMAIN_SHAPE)Convert.ToInt32(enum_Shape.Value));
  816. //测量区域大小
  817. m_cgenparam.SetArea(Convert.ToDouble(tBMeasArea.Text));
  818. //标准库选择
  819. ComboBoxItem enum_STDLIBSELECT = (ComboBoxItem)IDC_COMBO_STDSelect.SelectedItem;
  820. m_cgenparam.SetSTDSelect(enum_STDLIBSELECT.Text.ToString());
  821. //模式选择
  822. OTSPeriodicTable.ComboBoxItem enum_Model = (OTSPeriodicTable.ComboBoxItem)IDC_COMBO_Model.SelectedItem;
  823. m_cgenparam.SetPropertyDisplayMode(Convert.ToInt32(enum_Model.Value));
  824. }
  825. /// <summary>
  826. /// 保存图像处理参数
  827. /// </summary>
  828. public void SaveImageProc()
  829. {
  830. //颗粒面积范围 最小 最大
  831. CDoubleRange crc_partareamin = new CDoubleRange(Math.Round(Convert.ToDouble(IDC_EDIT_PARTAREAMIN.Text), 2), Math.Round(Convert.ToDouble(IDC_EDIT_PARTAREAMAX.Text), 2));
  832. m_cotsimgprocprm.SetIncAreaRange(crc_partareamin);
  833. //背景灰度范围 最小 最大
  834. CIntRange crc_backmin = new CIntRange(Convert.ToInt32(IDC_EDIT_BACKMIN.Text), Convert.ToInt32(IDC_EDIT_BACKMAX.Text));
  835. m_cotsimgprocprm.SetBGGray(crc_backmin);
  836. //颗粒灰度范围 最小 最大
  837. CIntRange crc_partmin = new CIntRange(Convert.ToInt32(IDC_EDIT_PARTMIN.Text), Convert.ToInt32(IDC_EDIT_PARTMAX.Text));
  838. m_cotsimgprocprm.SetParticleGray(crc_partmin);
  839. //去背景方式
  840. ComboBoxItem enum_BGREMOVETYPE = (ComboBoxItem)IDC_COMBO_BGREMOVETYPE.SelectedItem;
  841. m_cotsimgprocprm.SetBGRemoveType((otsdataconst.OTS_BGREMOVE_TYPE)enum_BGREMOVETYPE.Value);
  842. //去背景方式
  843. ComboBoxItem enum_AUTOBGREMOVETYP = (ComboBoxItem)IDC_COMBO_AUTOBGREMOVETYP.SelectedItem;
  844. m_cotsimgprocprm.SetAutoBGRemoveType((otsdataconst.OTS_AUTOBGREMOVE_TYPE)enum_AUTOBGREMOVETYP.Value);
  845. m_cotsimgprocprm.SetShowAreaDown(IDC_PART_MIN_SWITCH.Checked);
  846. m_cotsimgprocprm.SetShowAreaUp(IDC_PART_MAX_SWITCH.Checked);
  847. m_cotsimgprocprm.SetShowBGGrayDown(IDC_BACK_MIN_SWITCH.Checked);
  848. m_cotsimgprocprm.SetShowBGGrayUp(IDC_BACK_MAX_SWITCH.Checked);
  849. m_cotsimgprocprm.SetShowParticleGrayDown(IDC_PART_GRAY_MIN_SWITCH.Checked);
  850. m_cotsimgprocprm.SetShowParticleGrayUp(IDC_PART_GRAY_MAX_SWITCH.Checked);
  851. }
  852. /// <summary>
  853. /// 保存X-Ray参数
  854. /// </summary>
  855. public void SaveXRayParam()
  856. {
  857. //搜索X-ray精度
  858. ComboBoxItem enum_searchxrayspeed = (ComboBoxItem)IDC_COMBO_SEARCHXRAYSPEED.SelectedItem;
  859. m_cotsxrayprm.SetSearchSpeed((otsdataconst.OTS_THREE_TIES_OPTIONS)Convert.ToInt32(enum_searchxrayspeed.Value));
  860. //搜索X - ray精度对应的时间
  861. m_cotsxrayprm.SetMidSearchAQTime(Convert.ToInt32(IDC_TEXTBOX_SEARCHXRAYSPEED_TIME.Text.Trim()));
  862. //搜索X-ray最低计数
  863. m_cotsxrayprm.SetXRaySearchCount(Convert.ToInt32(IDC_EDIT_SEARCHXRAYCOUNTLIMIT.Text));
  864. //X-ray扫描方式
  865. ComboBoxItem enum_xrayscanmode = (ComboBoxItem)IDC_COMBO_XRAYSCANMODE.SelectedItem;
  866. m_cotsxrayprm.SetScanMode((otsdataconst.OTS_X_RAY_SCAN_MODE)Convert.ToInt32(enum_xrayscanmode.Value));
  867. //是否使用X-ray
  868. ComboBoxItem enum_usingxray = (ComboBoxItem)IDC_COMBO_USINGXRAYS.SelectedItem;
  869. m_cotsxrayprm.SetUsingXray(Convert.ToInt32(enum_usingxray.Value));
  870. //分析X-ray精度
  871. ComboBoxItem enum_analyxrayspeed = (ComboBoxItem)IDC_COMBO_ANALYXRAYSPEED.SelectedItem;
  872. m_cotsxrayprm.SetAnalySpeed((otsdataconst.OTS_THREE_TIES_OPTIONS)Convert.ToInt32(enum_analyxrayspeed.Value));
  873. //分析X-ray精度对应的时间
  874. m_cotsxrayprm.SetMidAnalyAQTime(Convert.ToInt32(IDC_TEXTBOX_ANALYXRAYSPEED_TIME.Text.Trim()));
  875. //分析X-ray计数期望值
  876. m_cotsxrayprm.SetAnalyExpCount(Convert.ToInt32(IDC_EDIT_ANALYXRAYAIMVALUE.Text));
  877. m_cotsxrayprm.SetShowScanMode(IDC_XRAY_MODE_SWITCH.Checked);
  878. m_cotsxrayprm.SetShowSpeed(IDC_XRAY_TIME_SWITCH.Checked);
  879. m_cotsxrayprm.SetShowExpCount(IDC_XRAY_COUNT_SWITCH.Checked);
  880. }
  881. /// <summary>
  882. /// 将参数保存到文件
  883. /// </summary>
  884. /// <param name="a_nPackId"></param>
  885. /// <param name="a_pStageData"></param>
  886. /// <param name="a_pGenParam"></param>
  887. /// <param name="a_pImageScanParam"></param>
  888. /// <param name="a_pImageProcParam"></param>
  889. /// <param name="a_pXRayParam"></param>
  890. /// <returns></returns>
  891. public bool SaveInfoToProgMgrFile()
  892. {
  893. //SaveInfoToProgMgrFile()
  894. if (false == m_cotsprogmgrparamfile.SaveInfoToProgMgrFile())
  895. {
  896. log.Error("(OTSProgMgrInfoFun.SaveInfoToProgMgrFile) 将参数保存到文件失败");
  897. return false;
  898. }
  899. return true;
  900. }
  901. /// <summary>
  902. /// 加载参数各个类
  903. /// </summary>
  904. public bool LoadParamFun()
  905. {
  906. bool result = m_cotsprogmgrparamfile.LoadInfoFromProgMgrFile();
  907. if (!result)
  908. {
  909. log.Error("(OTSProgMgrInfoFun.LoadParamFun) LoadInfoFromProgMgrFile失败");
  910. return false;
  911. }
  912. m_csemstagedata = m_cotsprogmgrparamfile.GetStageDataParam();
  913. if (null == m_csemstagedata)
  914. {
  915. log.Error("(OTSProgMgrInfoFun.LoadParamFun) GetStageData失败");
  916. return false;
  917. }
  918. m_cotsimgscanprm = m_cotsprogmgrparamfile.GetImageScanParam();
  919. if (null == m_cotsimgscanprm)
  920. {
  921. log.Error("(OTSProgMgrInfoFun.LoadParamFun) GetImageScanParam失败");
  922. return false;
  923. }
  924. m_cgenparam = m_cotsprogmgrparamfile.GetGenParam();
  925. if (null == m_cgenparam)
  926. {
  927. log.Error("(OTSProgMgrInfoFun.LoadParamFun) GetGenParam失败");
  928. return false;
  929. }
  930. m_cotsimgprocprm = m_cotsprogmgrparamfile.GetImageProcParam();
  931. if (null == m_cotsimgprocprm)
  932. {
  933. log.Error("(OTSProgMgrInfoFun.LoadParamFun) GetImageProcParam失败");
  934. return false;
  935. }
  936. m_cotsxrayprm = m_cotsprogmgrparamfile.GetXRayParam();
  937. if (null == m_cotsxrayprm)
  938. {
  939. log.Error("(OTSProgMgrInfoFun.LoadParamFun) GetXRayParam失败");
  940. return false;
  941. }
  942. return true;
  943. }
  944. #endregion
  945. #region 窗体加载
  946. private void ProgMgrInfoForm_Load(object sender, EventArgs e)
  947. {
  948. //加载各参数类
  949. LoadParamFun();
  950. //初始化combobox下拉框列表
  951. BindComboBox();
  952. //加载相关参数信息
  953. LoadSEMStageData();
  954. LoadImageScanPrm();
  955. LoadCGenParam();
  956. LoadImageProc();
  957. LoadXRayParam();
  958. if (m_b_checkstagefile == false)
  959. btnok.Enabled = true;
  960. else
  961. btnok.Enabled = false;
  962. //关于路径定位问题
  963. this.folderBrowserDialog1.SelectedPath = IDC_EDIT_MEASUREPARAMPATH.Text;
  964. string strb = ".\\Config\\SysData\\";
  965. string strc = ".\\Config\\ProData\\";
  966. string m_STDPath = strb;
  967. m_ParameterPath = strc;
  968. this.folderBrowserDialog1.SelectedPath = m_ParameterPath;
  969. IDC_EDIT_MEASUREPARAMPATH.Text = m_ParameterPath;
  970. IDC_EDIT_ANALYSESTDLIBPATH.Text = m_STDPath;
  971. }
  972. #endregion
  973. #region 各按钮控件点击事件
  974. private void IDC_BUTTON_KLFX_Click(object sender, EventArgs e)
  975. {
  976. try
  977. {
  978. if (IDC_COMBO_STDSelect.Text != "NoSTDDB")
  979. {
  980. Process p = System.Diagnostics.Process.Start(".\\OTSPartA_STDEditor.exe", Application.StartupPath + "\\Config\\SysData\\" + IDC_COMBO_STDSelect.Text);
  981. p.WaitForExit();
  982. }
  983. else
  984. {
  985. string message = table["message55"].ToString();
  986. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  987. }
  988. }
  989. catch (Exception ex)
  990. {
  991. log.Error("OTSPartA_STDEditor:" + ex.ToString());
  992. }
  993. }
  994. private void IDC_BUTTON_MEASPRAMPATHSET_Click(object sender, EventArgs e)
  995. {
  996. if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
  997. {
  998. IDC_EDIT_MEASUREPARAMPATH.Text = folderBrowserDialog1.SelectedPath;
  999. }
  1000. else {
  1001. folderBrowserDialog1.SelectedPath = IDC_EDIT_MEASUREPARAMPATH.Text;
  1002. }
  1003. }
  1004. private void IDC_BUTTON_PARTSTDLIBPATHSET_Click(object sender, EventArgs e)
  1005. {
  1006. if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
  1007. {
  1008. IDC_EDIT_ANALYSESTDLIBPATH.Text = folderBrowserDialog1.SelectedPath;
  1009. }
  1010. else {
  1011. folderBrowserDialog1.SelectedPath = IDC_EDIT_ANALYSESTDLIBPATH.Text;
  1012. }
  1013. }
  1014. /// <summary>
  1015. /// 弹出样品台管理窗体
  1016. /// </summary>
  1017. /// <param name="a_nPackId"></param>
  1018. /// <param name="a_pStageFile"></param>
  1019. /// <returns></returns>
  1020. public void ShowStageDialogExport()
  1021. {
  1022. DlgStageMgr dlgStageMgr = new DlgStageMgr(m_cstagefile);
  1023. dlgStageMgr.ShowDialog();
  1024. return;
  1025. }
  1026. /// <summary>
  1027. /// 保存样品台信息
  1028. /// </summary>
  1029. /// <returns></returns>
  1030. public bool CStageFileClrSave()
  1031. {
  1032. if (m_cstagefile == null)
  1033. {
  1034. //报错
  1035. log.Error("(OTSProgMgrInfoFun.CStageFileClrSave) 保存样品台信息出错!");
  1036. }
  1037. else
  1038. {
  1039. bool b_ret = m_cstagefile.Save();
  1040. if (false == b_ret)
  1041. {
  1042. log.Error("(OTSProgMgrInfoFun.CStageFileClrSave) 保存样品台信息出错!");
  1043. }
  1044. }
  1045. return false;
  1046. }
  1047. private void IDC_BUTTON_STAGE_Click(object sender, EventArgs e)
  1048. {
  1049. //弹出管理样品台管理窗体
  1050. ShowStageDialogExport();
  1051. //弹出后再保存样品台信息
  1052. CStageFileClrSave();
  1053. //刷新绑定样品台列表
  1054. BindStageCombobox();
  1055. //检测是否已经有修改
  1056. ThisSetIsModify();
  1057. }
  1058. /// <summary>
  1059. /// 判断各控件值是否正确
  1060. /// </summary>
  1061. /// <returns></returns>
  1062. private bool CheckSetupValues(int bz)
  1063. {
  1064. if ("" == IDC_COMBO_STAGE.Text)
  1065. {
  1066. string message = table["message1"].ToString();
  1067. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1068. IDC_COMBO_STAGE.Focus();
  1069. IDC_COMBO_STAGE.SelectAll();
  1070. return false;
  1071. }
  1072. if ("" == IDC_EDIT_SCREENWIDTH.Text)
  1073. {
  1074. string message = table["message2"].ToString();
  1075. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1076. IDC_EDIT_SCREENWIDTH.Focus();
  1077. IDC_EDIT_SCREENWIDTH.SelectAll();
  1078. return false;
  1079. }
  1080. if ("" == IDC_COMBO_XDIREC.Text)
  1081. {
  1082. string message = table["message3"].ToString();
  1083. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1084. IDC_COMBO_XDIREC.Focus();
  1085. IDC_COMBO_XDIREC.SelectAll();
  1086. return false;
  1087. }
  1088. if ("" == IDC_EDIT_XSTART.Text)
  1089. {
  1090. string message = table["message4"].ToString();
  1091. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1092. IDC_EDIT_XSTART.Focus();
  1093. IDC_EDIT_XSTART.SelectAll();
  1094. return false;
  1095. }
  1096. if ("" == IDC_EDIT_XEND.Text)
  1097. {
  1098. string message = table["message4"].ToString();
  1099. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1100. IDC_EDIT_XEND.Focus();
  1101. IDC_EDIT_XEND.SelectAll();
  1102. return false;
  1103. }
  1104. if ("" == IDC_COMBO_YDIRECT.Text)
  1105. {
  1106. string message = table["message5"].ToString();
  1107. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1108. IDC_COMBO_YDIRECT.Focus();
  1109. IDC_COMBO_YDIRECT.SelectAll();
  1110. return false;
  1111. }
  1112. if ("" == IDC_EDIT_YSTART.Text)
  1113. {
  1114. string message = table["message6"].ToString();
  1115. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1116. IDC_EDIT_YSTART.Focus();
  1117. IDC_EDIT_YSTART.SelectAll();
  1118. return false;
  1119. }
  1120. if ("" == IDC_EDIT_YEND.Text)
  1121. {
  1122. string message = table["message6"].ToString();
  1123. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1124. IDC_EDIT_YEND.Focus();
  1125. IDC_EDIT_YEND.SelectAll();
  1126. return false;
  1127. }
  1128. if ("" == IDC_EDIT_STOP_TIME.Text)
  1129. {
  1130. string message = table["message7"].ToString();
  1131. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1132. IDC_EDIT_STOP_TIME.Focus();
  1133. IDC_EDIT_STOP_TIME.SelectAll();
  1134. return false;
  1135. }
  1136. if ("" == IDC_EDIT_STOP_FIELD_NUM.Text)
  1137. {
  1138. string message = table["message8"].ToString();
  1139. MessageBox.Show("终止帧图数不能为空", "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1140. IDC_EDIT_STOP_FIELD_NUM.Focus();
  1141. IDC_EDIT_STOP_FIELD_NUM.SelectAll();
  1142. return false;
  1143. }
  1144. if ("" == IDC_EDIT_STOP_INCA_NUM.Text)
  1145. {
  1146. string message = table["message9"].ToString();
  1147. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1148. IDC_EDIT_STOP_INCA_NUM.Focus();
  1149. IDC_EDIT_STOP_INCA_NUM.SelectAll();
  1150. return false;
  1151. }
  1152. if ("" == IDC_COMBO_FETCHIMGMODE.Text)
  1153. {
  1154. string message = table["message10"].ToString();
  1155. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1156. IDC_COMBO_FETCHIMGMODE.Focus();
  1157. IDC_COMBO_FETCHIMGMODE.SelectAll();
  1158. return false;
  1159. }
  1160. if ("" == IDC_COMBO_IMGSCANSPEED.Text)
  1161. {
  1162. string message = table["message11"].ToString();
  1163. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1164. IDC_COMBO_IMGSCANSPEED.Focus();
  1165. IDC_COMBO_IMGSCANSPEED.SelectAll();
  1166. return false;
  1167. }
  1168. if ("" == IDC_COMBO_IMGSIZE.Text)
  1169. {
  1170. string message = table["message12"].ToString();
  1171. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1172. IDC_COMBO_IMGSIZE.Focus();
  1173. IDC_COMBO_IMGSIZE.SelectAll();
  1174. return false;
  1175. }
  1176. if ("" == IDC_EDIT_MINMAG.Text)
  1177. {
  1178. string message = table["message13"].ToString();
  1179. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1180. IDC_EDIT_MINMAG.Focus();
  1181. IDC_EDIT_MINMAG.SelectAll();
  1182. return false;
  1183. }
  1184. if ("" == IDC_EDIT_PARTAREAMIN.Text)
  1185. {
  1186. string message = table["message14"].ToString();
  1187. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1188. IDC_EDIT_PARTAREAMIN.Focus();
  1189. IDC_EDIT_PARTAREAMIN.SelectAll();
  1190. return false;
  1191. }
  1192. if ("" == IDC_EDIT_PARTAREAMAX.Text)
  1193. {
  1194. string message = table["message15"].ToString();
  1195. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1196. IDC_EDIT_PARTAREAMAX.Focus();
  1197. IDC_EDIT_PARTAREAMAX.SelectAll();
  1198. return false;
  1199. }
  1200. if ("" == IDC_EDIT_BACKMIN.Text)
  1201. {
  1202. string message = table["message16"].ToString();
  1203. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1204. IDC_EDIT_BACKMIN.Focus();
  1205. IDC_EDIT_BACKMIN.SelectAll();
  1206. return false;
  1207. }
  1208. if ("" == IDC_EDIT_BACKMAX.Text)
  1209. {
  1210. string message = table["message17"].ToString();
  1211. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1212. IDC_EDIT_BACKMAX.Focus();
  1213. IDC_EDIT_BACKMAX.SelectAll();
  1214. return false;
  1215. }
  1216. if ("" == IDC_EDIT_PARTMIN.Text)
  1217. {
  1218. string message = table["message18"].ToString();
  1219. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1220. IDC_EDIT_PARTMIN.Focus();
  1221. IDC_EDIT_PARTMIN.SelectAll();
  1222. return false;
  1223. }
  1224. if ("" == IDC_EDIT_PARTMAX.Text)
  1225. {
  1226. string message = table["message19"].ToString();
  1227. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1228. IDC_EDIT_PARTMAX.Focus();
  1229. IDC_EDIT_PARTMAX.SelectAll();
  1230. return false;
  1231. }
  1232. if ("" == IDC_COMBO_XRAYSCANMODE.Text)
  1233. {
  1234. string message = table["message20"].ToString();
  1235. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1236. IDC_COMBO_XRAYSCANMODE.Focus();
  1237. IDC_COMBO_XRAYSCANMODE.SelectAll();
  1238. return false;
  1239. }
  1240. if ("" == IDC_COMBO_USINGXRAYS.Text)
  1241. {
  1242. string message = table["message61"].ToString();
  1243. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1244. IDC_COMBO_USINGXRAYS.Focus();
  1245. IDC_COMBO_USINGXRAYS.SelectAll();
  1246. return false;
  1247. }
  1248. if ("" == IDC_COMBO_ANALYXRAYSPEED.Text)
  1249. {
  1250. string message = table["message21"].ToString();
  1251. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1252. IDC_COMBO_ANALYXRAYSPEED.Focus();
  1253. IDC_COMBO_ANALYXRAYSPEED.SelectAll();
  1254. return false;
  1255. }
  1256. if ("" == IDC_EDIT_ANALYXRAYAIMVALUE.Text)
  1257. {
  1258. string message = table["message22"].ToString();
  1259. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1260. IDC_EDIT_ANALYXRAYAIMVALUE.Focus();
  1261. IDC_EDIT_ANALYXRAYAIMVALUE.SelectAll();
  1262. return false;
  1263. }
  1264. if ("" == tBMeasArea.Text)
  1265. {
  1266. MessageBox.Show("输入的测量区域面积不可以为空!", "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1267. tBMeasArea.Focus();
  1268. tBMeasArea.SelectAll();
  1269. return false;
  1270. }
  1271. //string pat = @"^(-|\+)?\d{1,8}$";//只能输入1到3位的正负整数
  1272. string pat = @"^-?[0-9]\d*$";//只能限定正负整数,包含0
  1273. string scope = @"^(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$";
  1274. string PositiveDecimals = @"^(([1-9]\d*)(\.\d+)?)$|^0\.\d*[1-9]$"; //正浮点数
  1275. Regex rg = new Regex(pat);
  1276. Regex rgScope = new Regex(scope);
  1277. Regex rgPositiveDecimals = new Regex(PositiveDecimals);
  1278. //是否是正确的数值格式类型判断
  1279. //100倍时屏幕尺寸
  1280. if (false == rg.Match(IDC_EDIT_SCREENWIDTH.Text.Trim()).Success)
  1281. {
  1282. IDC_EDIT_SCREENWIDTH.Focus();
  1283. IDC_EDIT_SCREENWIDTH.SelectAll();
  1284. string message = table["message23"].ToString();
  1285. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1286. return false;
  1287. }
  1288. //x轴行程/mm 起
  1289. if (false == rg.Match(IDC_EDIT_XSTART.Text.Trim()).Success)
  1290. {
  1291. IDC_EDIT_XSTART.Focus();
  1292. IDC_EDIT_XSTART.SelectAll();
  1293. string message = table["message24"].ToString();
  1294. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1295. return false;
  1296. }
  1297. //x轴行程/mm 止
  1298. if (false == rg.Match(IDC_EDIT_XEND.Text.Trim()).Success)
  1299. {
  1300. IDC_EDIT_XEND.Focus();
  1301. IDC_EDIT_XEND.SelectAll();
  1302. string message = table["message25"].ToString();
  1303. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1304. return false;
  1305. }
  1306. //y轴行程/mm 起
  1307. if (false == rg.Match(IDC_EDIT_YSTART.Text.Trim()).Success)
  1308. {
  1309. IDC_EDIT_YSTART.Focus();
  1310. IDC_EDIT_YSTART.SelectAll();
  1311. string message = table["message26"].ToString();
  1312. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1313. return false;
  1314. }
  1315. //y轴行程/mm 止
  1316. if (false == rg.Match(IDC_EDIT_YEND.Text.Trim()).Success)
  1317. {
  1318. IDC_EDIT_YEND.Focus();
  1319. IDC_EDIT_YEND.SelectAll();
  1320. string message = table["message27"].ToString();
  1321. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1322. return false;
  1323. }
  1324. //终止时间
  1325. if (false == rg.Match(IDC_EDIT_STOP_TIME.Text.Trim()).Success)
  1326. {
  1327. IDC_EDIT_STOP_TIME.Focus();
  1328. IDC_EDIT_STOP_TIME.SelectAll();
  1329. string message = table["message28"].ToString();
  1330. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1331. return false;
  1332. }
  1333. //终止帧图数
  1334. if (false == rg.Match(IDC_EDIT_STOP_FIELD_NUM.Text.Trim()).Success)
  1335. {
  1336. IDC_EDIT_STOP_FIELD_NUM.Focus();
  1337. IDC_EDIT_STOP_FIELD_NUM.SelectAll();
  1338. string message = table["message29"].ToString();
  1339. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1340. return false;
  1341. }
  1342. //终止夹杂物数
  1343. if (false == rg.Match(IDC_EDIT_STOP_INCA_NUM.Text.Trim()).Success)
  1344. {
  1345. IDC_EDIT_STOP_INCA_NUM.Focus();
  1346. IDC_EDIT_STOP_INCA_NUM.SelectAll();
  1347. string message = table["message30"].ToString();
  1348. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1349. return false;
  1350. }
  1351. //颗粒面积范围 最小
  1352. if (false == rgPositiveDecimals.Match(IDC_EDIT_PARTAREAMIN.Text.Trim()).Success)
  1353. {
  1354. IDC_EDIT_PARTAREAMIN.Focus();
  1355. IDC_EDIT_PARTAREAMIN.SelectAll();
  1356. string message = table["message31"].ToString();
  1357. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1358. return false;
  1359. }
  1360. //颗粒面积范围 最大
  1361. if (false == rgPositiveDecimals.Match(IDC_EDIT_PARTAREAMAX.Text.Trim()).Success)
  1362. {
  1363. IDC_EDIT_PARTAREAMAX.Focus();
  1364. IDC_EDIT_PARTAREAMAX.SelectAll();
  1365. string message = table["message32"].ToString();
  1366. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1367. return false;
  1368. }
  1369. //背景灰度范围 最小
  1370. if (false == rg.Match(IDC_EDIT_BACKMIN.Text.Trim()).Success)
  1371. {
  1372. IDC_EDIT_BACKMIN.Focus();
  1373. IDC_EDIT_BACKMIN.SelectAll();
  1374. string message = table["message33"].ToString();
  1375. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1376. return false;
  1377. }
  1378. else
  1379. {
  1380. if (false == rgScope.Match(IDC_EDIT_BACKMIN.Text.Trim()).Success)
  1381. {
  1382. IDC_EDIT_BACKMIN.Focus();
  1383. IDC_EDIT_BACKMIN.SelectAll();
  1384. string message = table["message34"].ToString();
  1385. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1386. return false;
  1387. }
  1388. }
  1389. //背景灰度范围 最大
  1390. if (false == rg.Match(IDC_EDIT_BACKMAX.Text.Trim()).Success)
  1391. {
  1392. IDC_EDIT_BACKMAX.Focus();
  1393. IDC_EDIT_BACKMAX.SelectAll();
  1394. string message = table["message35"].ToString();
  1395. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1396. return false;
  1397. }
  1398. else
  1399. {
  1400. if (false == rgScope.Match(IDC_EDIT_BACKMAX.Text.Trim()).Success)
  1401. {
  1402. IDC_EDIT_BACKMAX.Focus();
  1403. IDC_EDIT_BACKMAX.SelectAll();
  1404. string message = table["message36"].ToString();
  1405. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1406. return false;
  1407. }
  1408. }
  1409. //颗粒灰度范围 最小
  1410. if (false == rg.Match(IDC_EDIT_PARTMIN.Text.Trim()).Success)
  1411. {
  1412. IDC_EDIT_PARTMIN.Focus();
  1413. IDC_EDIT_PARTMIN.SelectAll();
  1414. string message = table["message37"].ToString();
  1415. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1416. return false;
  1417. }
  1418. else
  1419. {
  1420. if (false == rgScope.Match(IDC_EDIT_PARTMIN.Text.Trim()).Success)
  1421. {
  1422. IDC_EDIT_PARTMIN.Focus();
  1423. IDC_EDIT_PARTMIN.SelectAll();
  1424. string message = table["message38"].ToString();
  1425. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1426. return false;
  1427. }
  1428. }
  1429. //颗粒灰度范围 最大
  1430. if (false == rg.Match(IDC_EDIT_PARTMAX.Text.Trim()).Success)
  1431. {
  1432. IDC_EDIT_PARTMAX.Focus();
  1433. IDC_EDIT_PARTMAX.SelectAll();
  1434. string message = table["message39"].ToString();
  1435. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1436. return false;
  1437. }
  1438. else
  1439. {
  1440. if (false == rgScope.Match(IDC_EDIT_PARTMAX.Text.Trim()).Success)
  1441. {
  1442. IDC_EDIT_PARTMAX.Focus();
  1443. IDC_EDIT_PARTMAX.SelectAll();
  1444. string message = table["message40"].ToString();
  1445. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1446. return false;
  1447. }
  1448. }
  1449. //分析X-ray计数期望值 最大
  1450. if (false == rg.Match(IDC_EDIT_ANALYXRAYAIMVALUE.Text.Trim()).Success)
  1451. {
  1452. IDC_EDIT_ANALYXRAYAIMVALUE.Focus();
  1453. IDC_EDIT_ANALYXRAYAIMVALUE.SelectAll();
  1454. string message = table["message41"].ToString();
  1455. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1456. return false;
  1457. }
  1458. //分析X-ray精度对应的时间
  1459. if (false == rg.Match(IDC_TEXTBOX_ANALYXRAYSPEED_TIME.Text.Trim()).Success)
  1460. {
  1461. IDC_TEXTBOX_ANALYXRAYSPEED_TIME.Focus();
  1462. IDC_TEXTBOX_ANALYXRAYSPEED_TIME.SelectAll();
  1463. string message = table["message42"].ToString();
  1464. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1465. return false;
  1466. }
  1467. //测量区域面积mm2
  1468. if (false == rg.Match(tBMeasArea.Text.Trim()).Success)
  1469. {
  1470. tBMeasArea.Focus();
  1471. tBMeasArea.SelectAll();
  1472. MessageBox.Show("请输入正确的数值格式!", "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1473. return false;
  1474. }
  1475. pat = @"^[0-9]+(\.[0-9]{1,3})?$"; //只能输入,1到3位小数的正数
  1476. rg = new Regex(pat);
  1477. //最小放大倍数
  1478. if (false == rg.Match(IDC_EDIT_MINMAG.Text.Trim()).Success)
  1479. {
  1480. IDC_EDIT_MINMAG.Focus();
  1481. IDC_EDIT_MINMAG.SelectAll();
  1482. string message = table["message43"].ToString();
  1483. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1484. return false;
  1485. }
  1486. //最小放大倍数不得小于45倍
  1487. if (Convert.ToInt32(IDC_EDIT_MINMAG.Text.Trim()) < 45)
  1488. {
  1489. IDC_EDIT_MINMAG.Focus();
  1490. IDC_EDIT_MINMAG.SelectAll();
  1491. string message = "最小放大倍数不可以小于45倍";
  1492. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1493. return false;
  1494. }
  1495. //再限制,x轴,y轴,的起止的,输入长度,因为现在已经有在mm和um之间的转换,所以这里要限制一下
  1496. //x轴行程/mm 起
  1497. if (IDC_EDIT_XSTART.Text.Length > 4)
  1498. {
  1499. IDC_EDIT_XSTART.Focus();
  1500. IDC_EDIT_XSTART.SelectAll();
  1501. string message = table["message44"].ToString();
  1502. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1503. return false;
  1504. }
  1505. //x轴行程/mm 止
  1506. if (IDC_EDIT_XEND.Text.Length > 4)
  1507. {
  1508. IDC_EDIT_XEND.Focus();
  1509. IDC_EDIT_XEND.SelectAll();
  1510. string message = table["message45"].ToString();
  1511. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1512. return false;
  1513. }
  1514. //y轴行程/mm 起
  1515. if (IDC_EDIT_YSTART.Text.Length > 4)
  1516. {
  1517. IDC_EDIT_YSTART.Focus();
  1518. IDC_EDIT_YSTART.SelectAll();
  1519. string message = table["message46"].ToString();
  1520. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1521. return false;
  1522. }
  1523. //y轴行程/mm 止
  1524. if (IDC_EDIT_YEND.Text.Length > 4)
  1525. {
  1526. IDC_EDIT_YEND.Focus();
  1527. IDC_EDIT_YEND.SelectAll();
  1528. string message = table["message47"].ToString();
  1529. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1530. return false;
  1531. }
  1532. if (Convert.ToInt32(IDC_EDIT_XSTART.Text.Trim()) > Convert.ToInt32(IDC_EDIT_XEND.Text.Trim()))
  1533. {
  1534. IDC_EDIT_XEND.Focus();
  1535. IDC_EDIT_XEND.SelectAll();
  1536. string message = table["message50"].ToString();
  1537. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1538. return false;
  1539. }
  1540. if (Convert.ToInt32(IDC_EDIT_YSTART.Text.Trim()) > Convert.ToInt32(IDC_EDIT_YEND.Text.Trim()))
  1541. {
  1542. IDC_EDIT_YEND.Focus();
  1543. IDC_EDIT_YEND.SelectAll();
  1544. string message = table["message53"].ToString();
  1545. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1546. return false;
  1547. }
  1548. //颗粒尺寸范围
  1549. if (Convert.ToDouble(IDC_EDIT_PARTAREAMIN.Text.Trim()) > Convert.ToDouble(IDC_EDIT_PARTAREAMAX.Text.Trim()))
  1550. {
  1551. IDC_EDIT_PARTAREAMIN.Focus();
  1552. IDC_EDIT_PARTAREAMIN.SelectAll();
  1553. string message = table["message56"].ToString();
  1554. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1555. return false;
  1556. }
  1557. //背景灰度范围
  1558. if (Convert.ToInt32(IDC_EDIT_BACKMIN.Text.Trim()) > Convert.ToInt32(IDC_EDIT_BACKMAX.Text.Trim()))
  1559. {
  1560. IDC_EDIT_BACKMIN.Focus();
  1561. IDC_EDIT_BACKMIN.SelectAll();
  1562. string message = table["message57"].ToString();
  1563. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1564. return false;
  1565. }
  1566. //颗粒灰度范围
  1567. if (Convert.ToInt32(IDC_EDIT_PARTMIN.Text.Trim()) > Convert.ToInt32(IDC_EDIT_PARTMAX.Text.Trim()))
  1568. {
  1569. IDC_EDIT_PARTMIN.Focus();
  1570. IDC_EDIT_PARTMIN.SelectAll();
  1571. string message = table["message58"].ToString();
  1572. MessageBox.Show(message, "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1573. return false;
  1574. }
  1575. return true;
  1576. }
  1577. /// <summary>
  1578. /// 判断当前样品台是否在被修改
  1579. /// </summary>
  1580. /// <returns></returns>
  1581. public bool IsModified()
  1582. {
  1583. return m_cstagefile.IsModified();
  1584. }
  1585. /// <summary>
  1586. /// 样品台保存
  1587. /// </summary>
  1588. /// <returns></returns>
  1589. public bool StageSave()
  1590. {
  1591. if (!m_cstagefile.Save())
  1592. {
  1593. log.Error("(OTSProgMgrInfoFun.StageLoad) 保存样品台信息失败");
  1594. return false;
  1595. }
  1596. return true;
  1597. }
  1598. private void btnok_Click(object sender, EventArgs e)
  1599. {
  1600. //先判断
  1601. if (false == CheckSetupValues(1))
  1602. {
  1603. return;
  1604. }
  1605. //先把各个值都保存到各类
  1606. SaveSEMStageData();
  1607. SaveImageScanPrm();
  1608. SaveCGenParam();
  1609. SaveImageProc();
  1610. SaveXRayParam();
  1611. //然后再把各类传入到SaveInfoToProgMgrFile函数中
  1612. if (false == SaveInfoToProgMgrFile())
  1613. {
  1614. return;
  1615. }
  1616. //保存样品台到文件,在被修改时进行保存
  1617. if (true == IsModified())
  1618. {
  1619. if (true == StageSave())
  1620. {
  1621. this.DialogResult = DialogResult.OK;
  1622. this.Close();
  1623. return;
  1624. }
  1625. else
  1626. {
  1627. string message = table["message54"].ToString();
  1628. log.Error("(ProgMgrInfoForm.btnok_Click) " + message);
  1629. this.Close();
  1630. return;
  1631. }
  1632. }
  1633. }
  1634. //关闭窗体
  1635. private void btncancel_Click(object sender, EventArgs e)
  1636. {
  1637. this.Close();
  1638. }
  1639. #endregion
  1640. #region 选择样品台事件
  1641. private void IDC_COMBO_STAGE_SelectedIndexChanged(object sender, EventArgs e)
  1642. {
  1643. //样品台
  1644. if (!StageLoad())
  1645. {
  1646. this.Close();
  1647. return;//加载失败返回
  1648. }
  1649. ThisSetIsModify();
  1650. //加载相关参数信息
  1651. //StageLoad();
  1652. LoadSEMStageData();
  1653. LoadImageScanPrm();
  1654. LoadCGenParam();
  1655. LoadImageProc();
  1656. LoadXRayParam();
  1657. }
  1658. /// <summary>
  1659. /// 通过id设置当前正在工作的样品台
  1660. /// </summary>
  1661. /// <param name="id"></param>
  1662. public void SetWorkingStageId(int id)
  1663. {
  1664. m_cstagefile.SetWorkingStageId(id);
  1665. }
  1666. /// <summary>
  1667. /// 设置当前样品台正在被修改中
  1668. /// </summary>
  1669. /// <param name="yn"></param>
  1670. public void SetModify(bool yn)
  1671. {
  1672. m_cstagefile.SetModify(true);
  1673. }
  1674. /// <summary>
  1675. /// 设置当前窗体可以保存了
  1676. /// </summary>
  1677. private void ThisSetIsModify()
  1678. {
  1679. ComboBoxItem cbi = new ComboBoxItem();
  1680. if (IDC_COMBO_STAGE.Items.Count > 0)
  1681. if (null != IDC_COMBO_STAGE.SelectedItem)
  1682. {
  1683. cbi = (ComboBoxItem)IDC_COMBO_STAGE.SelectedItem;
  1684. SetWorkingStageId(Convert.ToInt32(cbi.Value));
  1685. SetModify(true);
  1686. btnok.Enabled = true;
  1687. }
  1688. }
  1689. #endregion
  1690. #region 监视控件改变状态事件
  1691. private void IDC_EDIT_SCREENWIDTH_TextChanged(object sender, EventArgs e)
  1692. {
  1693. ThisSetIsModify();
  1694. }
  1695. private void IDC_COMBO_XDIREC_SelectedIndexChanged(object sender, EventArgs e)
  1696. {
  1697. ThisSetIsModify();
  1698. }
  1699. private void IDC_EDIT_XSTART_TextChanged(object sender, EventArgs e)
  1700. {
  1701. ThisSetIsModify();
  1702. }
  1703. private void IDC_EDIT_XEND_TextChanged(object sender, EventArgs e)
  1704. {
  1705. ThisSetIsModify();
  1706. }
  1707. private void IDC_COMBO_YDIRECT_SelectedIndexChanged(object sender, EventArgs e)
  1708. {
  1709. ThisSetIsModify();
  1710. }
  1711. private void IDC_EDIT_YSTART_TextChanged(object sender, EventArgs e)
  1712. {
  1713. ThisSetIsModify();
  1714. }
  1715. private void IDC_EDIT_YEND_TextChanged(object sender, EventArgs e)
  1716. {
  1717. ThisSetIsModify();
  1718. }
  1719. private void IDC_EDIT_MINMAG_TextChanged(object sender, EventArgs e)
  1720. {
  1721. ThisSetIsModify();
  1722. }
  1723. private void IDC_COMBO_STOPMODE_SelectedIndexChanged(object sender, EventArgs e)
  1724. {
  1725. ThisSetIsModify();
  1726. }
  1727. private void IDC_EDIT_STOP_TIME_TextChanged(object sender, EventArgs e)
  1728. {
  1729. ThisSetIsModify();
  1730. }
  1731. private void IDC_EDIT_STOP_FIELD_NUM_TextChanged(object sender, EventArgs e)
  1732. {
  1733. ThisSetIsModify();
  1734. }
  1735. private void IDC_EDIT_STOP_INCA_NUM_TextChanged(object sender, EventArgs e)
  1736. {
  1737. ThisSetIsModify();
  1738. }
  1739. private void IDC_COMBO_FETCHIMGMODE_SelectedIndexChanged(object sender, EventArgs e)
  1740. {
  1741. ThisSetIsModify();
  1742. }
  1743. private void IDC_COMBO_IMGSCANSPEED_SelectedIndexChanged(object sender, EventArgs e)
  1744. {
  1745. ThisSetIsModify();
  1746. }
  1747. private void IDC_COMBO_IMGSIZE_SelectedIndexChanged(object sender, EventArgs e)
  1748. {
  1749. ThisSetIsModify();
  1750. }
  1751. private void IDC_EDIT_SAMPLENAME_TextChanged(object sender, EventArgs e)
  1752. {
  1753. ThisSetIsModify();
  1754. }
  1755. private void IDC_MEAS_SWITCH_CheckedChanged(object sender, EventArgs e)
  1756. {
  1757. ThisSetIsModify();
  1758. }
  1759. private void IDC_EDIT_MEASUREPARAMPATH_TextChanged(object sender, EventArgs e)
  1760. {
  1761. ThisSetIsModify();
  1762. }
  1763. private void IDC_EDIT_ANALYSESTDLIBPATH_TextChanged(object sender, EventArgs e)
  1764. {
  1765. ThisSetIsModify();
  1766. }
  1767. private void IDC_EDIT_STDLIBNAME_TextChanged(object sender, EventArgs e)
  1768. {
  1769. ThisSetIsModify();
  1770. }
  1771. private void IDC_EDIT_PARTAREAMIN_TextChanged(object sender, EventArgs e)
  1772. {
  1773. ThisSetIsModify();
  1774. }
  1775. private void IDC_EDIT_PARTAREAMAX_TextChanged(object sender, EventArgs e)
  1776. {
  1777. ThisSetIsModify();
  1778. }
  1779. private void IDC_EDIT_BACKMIN_TextChanged(object sender, EventArgs e)
  1780. {
  1781. ThisSetIsModify();
  1782. }
  1783. private void IDC_EDIT_BACKMAX_TextChanged(object sender, EventArgs e)
  1784. {
  1785. ThisSetIsModify();
  1786. }
  1787. private void IDC_EDIT_PARTMIN_TextChanged(object sender, EventArgs e)
  1788. {
  1789. ThisSetIsModify();
  1790. }
  1791. private void IDC_EDIT_PARTMAX_TextChanged(object sender, EventArgs e)
  1792. {
  1793. ThisSetIsModify();
  1794. }
  1795. private void IDC_COMBO_AUTOBGREMOVETYPE_SelectedIndexChanged(object sender, EventArgs e)
  1796. {
  1797. ThisSetIsModify();
  1798. }
  1799. private void IDC_COMBO_BGREMOVETYPE_SelectedIndexChanged(object sender, EventArgs e)
  1800. {
  1801. ComboBox cbBGREMOVETYPE = (ComboBox)sender;
  1802. int selectValue=Convert.ToInt32(((OTSMeasureApp.ComboBoxItem)cbBGREMOVETYPE.Items[cbBGREMOVETYPE.SelectedIndex]).Value);
  1803. if (selectValue == (int)OTS_AUTOBGREMOVETYPE.MANUAL)
  1804. {
  1805. IDC_COMBO_AUTOBGREMOVETYP.Enabled = false;
  1806. }
  1807. else
  1808. {
  1809. IDC_COMBO_AUTOBGREMOVETYP.Enabled = true;
  1810. }
  1811. ThisSetIsModify();
  1812. }
  1813. private void IDC_COMBO_SEARCHXRAYSPEED_SelectedIndexChanged(object sender, EventArgs e)
  1814. {
  1815. ThisSetIsModify();
  1816. }
  1817. private void IDC_EDIT_SEARCHXRAYCOUNTLIMIT_TextChanged(object sender, EventArgs e)
  1818. {
  1819. ThisSetIsModify();
  1820. }
  1821. private void IDC_COMBO_XRAYSCANMODE_SelectedIndexChanged(object sender, EventArgs e)
  1822. {
  1823. ThisSetIsModify();
  1824. }
  1825. private void IDC_COMBO_ANALYXRAYSPEED_SelectedIndexChanged(object sender, EventArgs e)
  1826. {
  1827. ThisSetIsModify();
  1828. }
  1829. private void IDC_EDIT_ANALYXRAYAIMVALUE_TextChanged(object sender, EventArgs e)
  1830. {
  1831. ThisSetIsModify();
  1832. }
  1833. //选择颗粒标准库下拉框
  1834. //private void IDC_COMBO_STDLIBSELECT_SelectedIndexChanged(object sender, EventArgs e)
  1835. //{
  1836. // ComboBoxItem cbi = new ComboBoxItem();
  1837. // cbi = (ComboBoxItem)IDC_COMBO_STDLIBSELECT.SelectedItem;
  1838. // ThisSetIsModify();
  1839. //}
  1840. private void IDC_COMBO_TECHNOLOGY_SelectedIndexChanged(object sender, EventArgs e)
  1841. {
  1842. ThisSetIsModify();
  1843. }
  1844. private void IDC_STOP_MODE_SWITCH_CheckedChanged(object sender, EventArgs e)
  1845. {
  1846. ThisSetIsModify();
  1847. }
  1848. private void IDC_STOP_TIME_SWITCH_CheckedChanged(object sender, EventArgs e)
  1849. {
  1850. ThisSetIsModify();
  1851. }
  1852. private void IDC_STOP_FIELD_SWITCH_CheckedChanged(object sender, EventArgs e)
  1853. {
  1854. ThisSetIsModify();
  1855. }
  1856. private void IDC_STOP_PARTICAL_SWITCH_CheckedChanged(object sender, EventArgs e)
  1857. {
  1858. ThisSetIsModify();
  1859. }
  1860. private void IDC_FETCH_IMAGE_SWITCH_CheckedChanged(object sender, EventArgs e)
  1861. {
  1862. ThisSetIsModify();
  1863. }
  1864. private void IDC_SCAN_SPEED_SWITCH_CheckedChanged(object sender, EventArgs e)
  1865. {
  1866. ThisSetIsModify();
  1867. }
  1868. private void IDC_IMAGE_SIZE_SWITCH_CheckedChanged(object sender, EventArgs e)
  1869. {
  1870. ThisSetIsModify();
  1871. }
  1872. private void IDC_PART_MIN_SWITCH_CheckedChanged(object sender, EventArgs e)
  1873. {
  1874. ThisSetIsModify();
  1875. }
  1876. private void IDC_PART_MAX_SWITCH_CheckedChanged(object sender, EventArgs e)
  1877. {
  1878. ThisSetIsModify();
  1879. }
  1880. private void IDC_BACK_MIN_SWITCH_CheckedChanged(object sender, EventArgs e)
  1881. {
  1882. ThisSetIsModify();
  1883. }
  1884. private void IDC_BACK_MAX_SWITCH_CheckedChanged(object sender, EventArgs e)
  1885. {
  1886. ThisSetIsModify();
  1887. }
  1888. private void IDC_PART_GRAY_SWITCH_CheckedChanged(object sender, EventArgs e)
  1889. {
  1890. ThisSetIsModify();
  1891. }
  1892. private void IDC_PART_GRAY_MAX_CheckedChanged(object sender, EventArgs e)
  1893. {
  1894. ThisSetIsModify();
  1895. }
  1896. private void IDC_XRAY_MODE_SWITCH_CheckedChanged(object sender, EventArgs e)
  1897. {
  1898. ThisSetIsModify();
  1899. }
  1900. private void IDC_XRAY_TIME_SWITCH_CheckedChanged(object sender, EventArgs e)
  1901. {
  1902. ThisSetIsModify();
  1903. }
  1904. private void IDC_XRAY_COUNT_SWITCH_CheckedChanged(object sender, EventArgs e)
  1905. {
  1906. ThisSetIsModify();
  1907. }
  1908. private void cBMeasShape_SelectedIndexChanged(object sender, EventArgs e)
  1909. {
  1910. ThisSetIsModify();
  1911. }
  1912. private void tBMeasArea_TextChanged(object sender, EventArgs e)
  1913. {
  1914. ThisSetIsModify();
  1915. }
  1916. private void IDC_SYS_LIB_CheckedChanged(object sender, EventArgs e)
  1917. {
  1918. ThisSetIsModify();
  1919. }
  1920. #endregion
  1921. private void IDC_COMBO_STDSelect_SelectedIndexChanged(object sender, EventArgs e)
  1922. {
  1923. ThisSetIsModify();
  1924. }
  1925. private void IDC_COMBO_USINGXRAYS_SelectedIndexChanged(object sender, EventArgs e)
  1926. {
  1927. ThisSetIsModify();
  1928. }
  1929. private void IDC_COMBO_Model_SelectedIndexChanged(object sender, EventArgs e)
  1930. {
  1931. ThisSetIsModify();
  1932. }
  1933. }
  1934. public class ComboBoxItem
  1935. {
  1936. private string _text = null;
  1937. private object _value = null;
  1938. public string Text { get { return this._text; } set { this._text = value; } }
  1939. public object Value { get { return this._value; } set { this._value = value; } }
  1940. public override string ToString()
  1941. {
  1942. return this._text;
  1943. }
  1944. }
  1945. }