using OTSCommon; using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; namespace OTSMeasureApp._7_OTSProgMgrInfo { public partial class SpecialParticleForm : Form { private string xmlPath = ""; private string str_RegName = "default"; private string str_start = "0"; private string str_end = "100"; private string str_diameterStart = "0"; private string str_diameterEnd = "100"; private string str_collectXray = "false"; //国际化 OTSCommon.Language lan; Hashtable table; public delegate void MyInvoke(); public void DoWork() { MyInvoke mi = new MyInvoke(ShowXmlInfo); this.BeginInvoke(mi); } public SpecialParticleForm(string xmlPath) { InitializeComponent(); this.xmlPath = xmlPath; ShowXmlInfo(); //国际化 lan = new OTSCommon.Language(this); table = lan.GetNameTable(this.Name); } private void ShowXmlInfo() { DataSet dataSet = XMLoperate.GetXMLRegList(xmlPath, "Member"); dataGridView_xml.DataSource = dataSet.Tables[0]; } private void dataGridView_xml_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex == -1 || e.ColumnIndex == -1) { return; } if (e.RowIndex == dataGridView_xml.Rows.Count - 1) { return; } switch (e.ColumnIndex) { case 0://名称 { for (int i = 0; i < dataGridView_xml.Rows.Count - 1; i++) { if (i != e.RowIndex) { if (dataGridView_xml.Rows[i].Cells[e.ColumnIndex].Value.ToString() == dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()) { dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value += "_1"; break; } } } if (dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString() == "") { dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value += "unknow"; } break; } case 1://开始灰度 { int result = 0; int.TryParse(dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(), out result); if (result == 0) { dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "0"; } else { if (int.Parse(dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()) > int.Parse(dataGridView_xml.Rows[e.RowIndex].Cells[2].Value.ToString())) { dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = dataGridView_xml.Rows[e.RowIndex].Cells[2].Value.ToString(); } else if (int.Parse(dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()) < 0 || int.Parse(dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()) > 255) { dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "0"; } } break; } case 2://结束灰度 { int result = 0; int.TryParse(dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(), out result); if (result == 0) { dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "0"; } else { if (int.Parse(dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()) < int.Parse(dataGridView_xml.Rows[e.RowIndex].Cells[1].Value.ToString())) { dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = dataGridView_xml.Rows[e.RowIndex].Cells[1].Value.ToString(); } else if (int.Parse(dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()) < 0 || int.Parse(dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()) > 255) { dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "0"; } } break; } case 3: //开始直径 { int result = 0; int.TryParse(dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(), out result); if (result == 0) { dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "0"; } else { if (int.Parse(dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()) > int.Parse(dataGridView_xml.Rows[e.RowIndex].Cells[4].Value.ToString())) { dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = dataGridView_xml.Rows[e.RowIndex].Cells[4].Value.ToString(); } else if (int.Parse(dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()) < 0 || int.Parse(dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()) > 255) { dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "0"; } } break; } case 4: //结束直径 { int result = 0; int.TryParse(dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(), out result); if (result == 0) { dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "0"; } else { if (int.Parse(dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()) < int.Parse(dataGridView_xml.Rows[e.RowIndex].Cells[3].Value.ToString())) { dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = dataGridView_xml.Rows[e.RowIndex].Cells[3].Value.ToString(); } else if (int.Parse(dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()) < 0 || int.Parse(dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()) > 255) { dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "0"; } } break; } case 5: //是否采集Xray { bool result = false; bool.TryParse(dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(), out result); if (result == false) { dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "false"; } break; } default: break; } if (dataGridView_xml.Rows[e.RowIndex].Cells[0].Value.ToString() != "") { XMLoperate.UpdateXMLRegList(xmlPath, "Member", e.RowIndex.ToString(), dataGridView_xml.Columns[e.ColumnIndex].Name, dataGridView_xml.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()); } } private void dataGridView_xml_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e) { e.Row.Cells["RegName"].Value = str_RegName; e.Row.Cells["start"].Value = str_start; e.Row.Cells["end"].Value = str_end; e.Row.Cells["diameterStart"].Value = str_diameterStart; e.Row.Cells["diameterEnd"].Value = str_diameterEnd; e.Row.Cells["collectXray"].Value = str_collectXray; XMLoperate.AddXMLRegList(xmlPath, str_RegName, str_start, str_end, str_diameterStart, str_diameterEnd, str_collectXray); Thread thread = new Thread(DoWork); thread.Start(); } private void dataGridView_xml_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e) { XMLoperate.DeleteXMLRegList(xmlPath, "Member", e.Row.Index); Thread thread = new Thread(DoWork); thread.Start(); } } }