我是再开发一个商品订单录入功能,商品订单信息是以二维条码形式存储的,现在是用条码扫描器进行录入,数据录入是异步读取的,可是有一个问题 第一次扫描时表单信息可以读取到并能显示到窗体上,第二次数据可以扫描到确没有显示出来,现在代码如下:
#region 获取扫描事件
private void spMaterial_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
int inByte = spMaterial.ReadByte();
if (inByte != 94)
{
lint.Add(inByte);
}
else
{
Invoke(new HandleInterfaceUpdateDelegate(AddByte));
lint.Clear();
}
}
#endregion private void AddByte()
{
if (txtByteText.InvokeRequired)
{
Invoke(new HandleInterfaceUpdateDelegate(AddByte));
}
else
{
txtByteText.Text = lint[0].ToString();
}
}这样可以每次都可以给txtByteText赋值,但是我现在要做的是给表单数据赋值 有多个输入框和列表框,总不能一个控件写一个方法吧? 我对委托什么的不太熟悉,希望高手能给出方法 谢谢。或许我上面写的有点不清楚,我来说 下我要实现的 就是用扫描设备把二维条友信息扫描出来并填写到窗体表单的各个输入框和列表框中,现在是第一次可以,第二次就不可以了,每次打开程序只是第一次可以,希望高手给出解决方法 非常感谢。
#region 获取扫描事件
private void spMaterial_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
int inByte = spMaterial.ReadByte();
if (inByte != 94)
{
lint.Add(inByte);
}
else
{
Invoke(new HandleInterfaceUpdateDelegate(AddByte));
lint.Clear();
}
}
#endregion private void AddByte()
{
if (txtByteText.InvokeRequired)
{
Invoke(new HandleInterfaceUpdateDelegate(AddByte));
}
else
{
txtByteText.Text = lint[0].ToString();
}
}这样可以每次都可以给txtByteText赋值,但是我现在要做的是给表单数据赋值 有多个输入框和列表框,总不能一个控件写一个方法吧? 我对委托什么的不太熟悉,希望高手能给出方法 谢谢。或许我上面写的有点不清楚,我来说 下我要实现的 就是用扫描设备把二维条友信息扫描出来并填写到窗体表单的各个输入框和列表框中,现在是第一次可以,第二次就不可以了,每次打开程序只是第一次可以,希望高手给出解决方法 非常感谢。
解决方案 »
- C# MSChart问题
- C# 开发Window Mobile程序,用什么显示大文本比较好
- 关于VS2008 设置断点调试后自动窗口的图标
- 三层架构的问题:我写了个数据访问层开始用的好好的这几天出了问题,麻烦各位大虾们看看。急啊!!!
- 为什么DataGrid_Delete(web)的事件不能触发?
- 计划任务怎么写呀?
- 如何往Excel中粘贴数据
- 对windows窗体和wpf的选择
- 求助,Webbroswer控件模拟点击后网页源码不更新!!!!
- ado.net里的dataset可以做成离线数据库,在离线状态下改变表里的内容,然后统一更新数据表..可是不知道怎么弄
- 一个关于Attribute的问题
- 关于C#的正则表达式的问题(在线等)
http://www.cnblogs.com/shuihuren/articles/987522.html