ProgMgrInfoForm.cs 88 KB

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