笔者最近需要上位机与下位机进行数据交互,在广泛参考大佬的资料后,较为完善地使用文本框控件进行数据输入的功能。感兴趣的可以了解一下
笔者最近需要上位机与下位机进行数据交互,在广泛参考大佬的资料后,较为完善地使用文本框控件进行数据输入的功能。
程序段主要功能:实现输入数据并转换成字节数组再通过串口发送至下位机。
读取文本框控件中数据并发送
私有void Botton_Float_Click(对象发送方,EventArgs e)
{
如果(按钮1。Text=='关闭串口)
{
if(TextBox_Tem_Cal .文字!=字符串。空)//判断数据输入框是否为空
{
十六进制数学CRC=新的十六进制数学();
字节[]缓冲区=新字节[6];
float tem_cal_float=float .Parse(TextBox_Tem_Cal .正文);
Byte[] float_byte_array=新字节[4];
float _ byte _ array=float to bytes(tem _ cal _ float);
缓冲区[0]=浮点字节数组[0];
缓冲区[1]=浮点字节数组[1];
缓冲区[2]=浮点字节数组[2];
缓冲区[3]=浮点字节数组[3];
CRC .CalculateCrc16(buffer,out buffer[5],out buffer[4]);
串行端口1。Write(缓冲区,0,6);
}
其他
{
消息框.显示('校准数据不能为空');
}
}
其他
{
消息框.显示('串口未打开');
}
}
限制文本框控件输入数据
私有void TextBox _ Tem _ Cal _ KeyPress(对象发送方,KeyPressEventArgs e)//在文本框中按下按键时触发事件,保证只能输入数字
{
//判断按键是不是要输入的类型。
if((int)e . key char 48 | |(int)e . key char 57)(int)e . key char!=8 (int)e.KeyChar!=46)
e.已处理=真;
//小数点的处理。
if ((int)e.KeyChar==46) //小数点
{
if (TextBox_Tem_Cal .文本长度=0)
e.已处理=真;//小数点不能在第一位
其他
{
浮动f;
浮动oldf
布尔b1=假,b2=假
b1=浮点型TryParse(TextBox_Tem_Cal .Text,out oldf);
b2=浮点型TryParse(TextBox_Tem_Cal .Text e.KeyChar.ToString(),out f);
如果(b2==假)
{
如果(b1==真)
e.已处理=真;
其他
e.已处理=假;
}
}
}
}
浮动与字节数组互转
私有静态字节[]浮点字节(浮点数据)
{
危险的
{
字节* pdata=(字节*)数据;
byte[]byteArray=new byte[sizeof(float)];
for(int I=0;i sizeof(浮点型);我)
byteArray[I]=* pdata;
返回byteArray
}
}
私有静态浮点字节数浮点(字节[]数据)
{
危险的
{
浮动a=0.0F
字节我;
字节[] x=数据;
void * pf
固定(字节* px=x)
{
pf=a;
for(I=0;我数据。长度;我)
{
*((byte *)pf I)=*(PXI);
}
}
返回a;
}
}
程序参考:
文本框输入限制
C#字节与漂浮物转换
到此这篇关于C#使用文本框作数据输入方法的文章就介绍到这了,更多相关C#文本框数据输入内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。