ProgMgrInfoForm.cs 88 KB

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