private void btnSave_Click(object sender, EventArgs e) { try { if (gridView1.RowCount > count) { XtraMessageBox.Show("com port数不能多于" + count + "个!", "提示"); return; } //删除Toner原注册表值 PaCSGlobal.DeleteRegistryValue(regPath); //保存目前的注册表值 for (int i = 0; i < gridView1.RowCount; i++) { string com = gridView1.GetRowCellValue(i, gridView1.Columns["Com Port"]).ToString(); string rate = gridView1.GetRowCellValue(i, gridView1.Columns["Baud Rate"]).ToString() + "," + gridView1.GetRowCellValue(i, gridView1.Columns["Suffix"]).ToString(); // string sfx = //成功打开后,记录到注册表中 PaCSGlobal.SetRegistryValue(com, rate, regPath); } this.DialogResult = System.Windows.Forms.DialogResult.OK; XtraMessageBox.Show("保存成功", "提示"); } catch (Exception btnSave_Click) { XtraMessageBox.Show(this, "System error[btnSave_Click]: " + btnSave_Click.Message); } }
public static void InitComPort(string module_name, string form_name, SerialPort[] ports) { int errorPort = 0; int m = ports.Length; //com口个数 int n = 0; try { string regPath = module_name + "\\" + form_name; foreach (SerialPort port in ports) { if (port.IsOpen) { port.Close(); } } for (int i = 1; i < 17; i++) { if (!string.IsNullOrEmpty(PaCSGlobal.GetRegistryValue("COM" + i, regPath))) { errorPort = i; if (n >= m) { break; } ports[n].PortName = "COM" + i; if (PaCSGlobal.GetRegistryValue("COM" + i, regPath).IndexOf(',') != -1) { ports[n].BaudRate = int.Parse(PaCSGlobal.GetRegistryValue("COM" + i, regPath).Split(',')[0]); } else { ports[n].BaudRate = int.Parse(PaCSGlobal.GetRegistryValue("COM" + i, regPath)); } ports[n].Open(); n++; } } } catch (Exception e) { XtraMessageBox.Show("端口COM" + errorPort + "打开错误", "提示"); } }
private void Init() { DataColumn dc = null; dc = dt.Columns.Add("Com Port", Type.GetType("System.String")); dc = dt.Columns.Add("Baud Rate", Type.GetType("System.String")); dc = dt.Columns.Add("Suffix", Type.GetType("System.String")); for (int i = 1; i < 17; i++) { if (!string.IsNullOrEmpty(PaCSGlobal.GetRegistryValue("COM" + i, regPath))) { DataRow dr = dt.NewRow(); dr["Com Port"] = "COM" + i; dr["Baud Rate"] = PaCSGlobal.GetRegistryValue("COM" + i, regPath).Split(',')[0]; dr["Suffix"] = PaCSGlobal.GetRegistryValue("COM" + i, regPath).Split(',')[1]; dt.Rows.Add(dr); } } RepositoryItemComboBox cmbCom = new RepositoryItemComboBox(); cmbCom.TextEditStyle = TextEditStyles.DisableTextEditor; RepositoryItemComboBox cmbRate = new RepositoryItemComboBox(); cmbRate.TextEditStyle = TextEditStyles.DisableTextEditor; RepositoryItemComboBox cmbSfx = new RepositoryItemComboBox(); cmbSfx.TextEditStyle = TextEditStyles.DisableTextEditor; for (int i = 1; i < 17; i++) { cmbCom.Items.Add("COM" + i); } cmbRate.Items.Add("2400"); cmbRate.Items.Add("4800"); cmbRate.Items.Add("9600"); cmbRate.Items.Add("14400"); cmbRate.Items.Add("19200"); cmbRate.Items.Add("38400"); cmbRate.Items.Add("57600"); cmbRate.Items.Add("115200"); cmbRate.Items.Add("128000"); cmbSfx.Items.Add("ETX"); cmbSfx.Items.Add("LF"); cmbSfx.Items.Add("CR"); cmbSfx.Items.Add("CRLF"); cmbSfx.Items.Add("CRFF"); cmbSfx.Items.Add("NONE"); gridControl1.DataSource = dt; gridView1.Columns[0].Width = 120; gridView1.Columns[1].Width = 120; gridView1.Columns[0].ColumnEdit = cmbCom; gridView1.Columns[1].ColumnEdit = cmbRate; gridView1.Columns[2].ColumnEdit = cmbSfx; }