我正在尝试为串行端口开发Windows窗体应用程序。我的申请表中有不同的表格。因此,我以不同的形式显示了传感器数据的写入值。我要做的是,当我更改传感器的写入数据的值时,将不得不更改传感器的值。我尝试了以同样的方式工作。但是当我尝试另一种形式时,它显示了此异常:System.FormatException:'输入的字符串格式不正确。我尝试使用属性。我的代码如下:在配置形式中,我创建了一个属性并以相同形式调用按钮public partial class config : Form{ public string _txtRsltDensity { get { return txtRsltDensity.Text; } set { txtRsltDensity.Text = value; } } private void btnRsltDensity_Click(object sender, EventArgs e) { Form1 f1 = new Form1(); int val = Convert.ToInt32(_txtRsltDensity); bool res = Int32.TryParse(_txtRsltDensity, out val); if (res == true && val > -1 && val < 2) { f1.Density();// this is function created in main form } }}在主表单中,我首先为传感器创建了一个命令,然后创建了一个函数以在传感器中写入新值 public string cmdMake(int cmd, int rw) { int cmdLen = 0; string param = ""; string strCmd = "D"; AsciiCode ascCode = new AsciiCode(); strCmd = strCmd + Convert.ToInt32(numSlave.Value).ToString("X2"); if (rw == CMD_RD) { strCmd = strCmd + "07" + cmd.ToString("X2"); strCmd = strCmd + dterr_chk.CalCRC16(strCmd); } else { switch (cmd) { case 13: config C = new config(); param = dtConv.DblToStr(double.Parse(C.txtRsltDensity.Text), 0, 2, 0);// here show the exception may be because the value of textbox is zero break; } cmdLen = 7 + param.Length; strCmd = strCmd + cmdLen.ToString("X2") + cmd.ToString("X2") + param; strCmd = strCmd + dterr_chk.CalCRC16(strCmd); } strCmd = strCmd + ascCode.STR_CRLF; return (strCmd); }
1 回答
- 1 回答
- 0 关注
- 124 浏览
添加回答
举报
0/150
提交
取消