最近学习串口,用C#写了一个简单的串口通信界面,功能虽然实现了,但有些程序还是不太懂,主要是不知道功能是什么,希望懂了指点一下。代码如下:
void BindParity()//校验位
{
DataTable dt = new DataTable();
dt.Columns.Add("ValueMember");
dt.Columns.Add("DisplayMember");
for (int i = 0; i < 3; i++)
{
DataRow dr = dt.NewRow();
if (((int)Parity.None).Equals(i))//转换为int型数值,并判断是否与i值相同
{
dr[0] = (int)Parity.None;
dr[1] = Parity.None.ToString();//00
}
if (((int)Parity.Odd).Equals(i))
{
dr[0] = (int)Parity.Odd;
dr[1] = Parity.Odd.ToString();//11
}
if (((int)Parity.Even).Equals(i))
{
dr[0] = (int)Parity.Even;
dr[1] = Parity.Even.ToString();//22
}
dt.Rows.Add(dr);
}
comboBox3.DataSource = dt;
comboBox3.DisplayMember = "DisplayMember";
comboBox3.ValueMember = "ValueMember";
comboBox3.SelectedIndex = 0;
}
void stopbits() //停止位
{
DataTable dt = new DataTable();
dt.Columns.Add("ValueMember");
dt.Columns.Add("DisplayMember");
for (int i = 0; i < 4; i++)
{
DataRow dr = dt.NewRow();
if (((int)StopBits.None).Equals(i))
{
dr[0] = (int)StopBits.None;
dr[1] = StopBits.None.ToString();//0 None
}
if (((int)StopBits.One).Equals(i))
{
dr[0] = (int)StopBits.One;
dr[1] = StopBits.One.ToString();//1 One
}
if (((int)StopBits.Two).Equals(i))
{
dr[0] = (int)StopBits.Two;
dr[1] = StopBits.Two.ToString();//2 Two
}
if (((int)StopBits.OnePointFive).Equals(i))
{
dr[0] = (int)StopBits.OnePointFive;
dr[1] = StopBits.OnePointFive.ToString();//3 OnePointFive
}
dt.Rows.Add(dr);
}
comboBox4.DataSource = dt;
comboBox4.DisplayMember = "DisplayMember";
comboBox4.ValueMember = "ValueMember";
comboBox4.SelectedIndex = 1;
}
以上代码是我从相关串口实例上看到的,我感觉C#写串口不需要调用这些函数啊!可为什么有些(很多)的例子中都调用了这两个函数,这两个函数的作用是什么???
------解决思路----------------------
这不就是给两个下拉列表绑定数据吗
为了让用户能手动选择串口的参数呗
你总不能每次都代码写死吧
------解决思路----------------------
一般我来做,会直接给控件显示"None"这个字符串,而不是Parity.None.ToString()这种东西
------解决思路----------------------
这是给DataTable添加了2列,一列用来存放值,一列用来存放显示的文本,然后绑定下拉列表
毕竟你给串口对象设置参数的时候,使用的是枚举,如果你只添加文本而不添加值,那么获取到用户选择的文本之后,还要自己再写分支语句判断一下,再转换成枚举值.那样其实也可以的.
------解决思路----------------------
我自己做串口程序的时候,更习惯直接给下拉列表添加文本,然后在给串口初始化参数的函数里用分支语句转换成枚举赋值
因为我觉得为了俩下拉列表定义俩DataTable怪麻烦的,其实代码量差不多了
------解决思路----------------------
最近我也在学习串口的相关开发!正好可以看到!