Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#如何将扫描字符串发送到表单2_C# - Fatal编程技术网

C#如何将扫描字符串发送到表单2

C#如何将扫描字符串发送到表单2,c#,C#,我正在创建一个包含两个表单的应用程序。 在我的主窗体1上,我有一个通过按钮连接的扫描仪。 我的form2上有一个文本框,在这个文本框中,我希望扫描的信息可以放在这里。 我的表格1上没有文本框 我似乎不知道怎么做,我想知道是否有人有任何提示 多谢各位 这是表格1中的代码,允许我设置扫描仪 ///扫描仪设置按钮的事件处理程序 /// /// private void scannerFormBTN_单击(对象发送方,事件参数e) { 尝试 { //如果按钮为黄色,请断开手持扫描仪 if(sca

我正在创建一个包含两个表单的应用程序。 在我的主窗体1上,我有一个通过按钮连接的扫描仪。 我的form2上有一个文本框,在这个文本框中,我希望扫描的信息可以放在这里。 我的表格1上没有文本框

我似乎不知道怎么做,我想知道是否有人有任何提示

多谢各位


这是表格1中的代码,允许我设置扫描仪


///扫描仪设置按钮的事件处理程序
/// 
/// 
private void scannerFormBTN_单击(对象发送方,事件参数e)
{
尝试
{
//如果按钮为黄色,请断开手持扫描仪
if(scannerBTN.BackColor==Color.LightGreen)
{
scanner.ReadStringArrivedHandler-=新的ReadStringArrivedHandler(OnReadStringArrived);
scanner.Disconnect();
扫描器=空;
scannerFormBTN.BackColor=Color.IndianRed;
this.scannerFormBTN.Text=“设置手持扫描仪”;
MessageBox.Show(“手持式扫描仪已断开。”,“警报”);
}
//如果扫描仪未连接
其他的
{
Setupscanner scannerForm=新建Setupscanner();//实例化扫描仪表单
//显示表单。如果扫描仪连接成功,DialogResult=yes。
DialogResult connection_successfull=scannerForm.ShowDialog();
if(连接成功==对话框结果.是)
{
this.scanner=scannerForm.sys;//将本地手动扫描仪变量设置为成功连接的扫描仪
如果(扫描仪已断开连接)
{
scanner.ReadStringArrivedHandler+=新的ReadStringArrivedHandler(OnReadStringArrivedHandler);//注册读取字符串事件。
scannerFormBTN.Text=“手动扫描仪已连接。单击以断开连接”;
scannerBTN.BackColor=Color.LightGreen;//更改手持扫描仪按钮的颜色
}
}
}
}
catch(Exception ex){MessageBox.Show(“出现错误。异常读取:\n\n”+ex.Message,“error”);}
}
/// 
///当字符串从连接的手持扫描仪到达时激发的事件
/// 
/// 
/// 
私有void OnReadStringArrived(对象发送方,ReadStringArrivedEventArgs args)
{
SetSerNumber(args.ReadString);
}
/// 
///用于设置输入扫描仪字符串的序列号
/// 
/// 
私有void SetSerNumber(字符串msg)
{
//如果事件是在创建控件的线程之外的其他线程上触发的
如果(需要调用的部分代码文本框)
{
SetSerialNumber S=新的SetSerialNumber(SetSerNumber);
this.Invoke(S,新对象[]{msg});//在当前线程上调用委托
}
其他的
{
Part_Code_Text_Box.Text=msg.Trim();
}
}

在表单2中创建一个属性或字段。现在我们将其称为StringFromScanner。 当您想要显示另一个时,您很可能会从中创建一个对象…将此对象的StringFromScanner设置为您拥有的字符串..并且当您打开第二个表单时,该属性中将包含该字符串的值,并且您可以将其分配给任何控件

表格一

Form2 objectfromform2 = new Form2();
objectfromform2.StringFromScanner = MyString;
objectfromform2.Show();
表格二

MytextBox.Text = StringFromScanner
您也可以忽略属性,使用构造函数来获得相同的结果

MytextBox.Text = StringFromScanner