我正在尝试为串行端口开发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);
}
相关分类