我有 2 个不同的表格应用程序。我正在尝试将数据从一个数据拉到另一个数据,但出现错误。你能帮助我吗?
I have 2 different form applications. I'm trying to pull data from one to the other but I'm getting an error. Can you help me?
我有一个体重秤应用程序。我想将值传递到另一个表单位置,但出现错误。我刚毕业,不懂太多,很遗憾,你能帮帮我吗?
我的称重应用:
namespace Tartı
{
public partial class Tarti : Form
{
public SerialPort _serialPort = null;
public Tarti()
{
InitializeComponent();
Control.CheckForIllegalCrossThreadCalls = false;
_serialPort = new SerialPort("COM4", 9600, Parity.None, 8);
_serialPort.StopBits = StopBits.One;
_serialPort.ReadTimeout = 1000;
_serialPort.DataReceived += new SerialDataReceivedEventHandler(_serialPort_DataReceived);
_serialPort.Open();
}
public string weight = "";
private delegate void Closure();
private void _serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
int dataLength = _serialPort.BytesToRead;
byte[] data = new byte[dataLength];
int nbrDataRead = _serialPort.Read(data, 0, dataLength);
if (nbrDataRead == 0)
return;
string str = System.Text.Encoding.UTF8.GetString(data);
double number;
if (Double.TryParse(str, out number))
{
txtWeight.Text = string.Format("{0:0.000}", str);
}
else
{
var doubleArray = Regex.Split(str, @"[^0-9\.]+")
.Where(c => c != "." && c.Trim() != "");
string[] str1 = ((System.Collections.IEnumerable)doubleArray)
.Cast<object>()
.Select(x => x.ToString())
.ToArray();
if (str1 != null && str1.Length > 0)
{
txtWeight.Text = string.Format("{0:0.000}", str1[0]);
txtWeight.ForeColor = Color.Red;
weight = txtWeight.Text;
_serialPort.Close();
}
}
}
private void Tarti_Load(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
}
}
}
其他表单申请数据需要来此申请:
private void AgirlikAl_Click(object sender, EventArgs e)
{
Tarti v = new Tarti();
v.Hide();
string a = v.weight;
string[] split = a.Split('.');
PackingReal.Text = split[0].ToString();
PackingDecimal.Text = split[1].ToString();
}
它给出以下错误消息:
附加信息:索引超出数组范围。我该如何解决这个问题?
检查您的“重量”变量值,它总是string.Empty,因为您总是在此处创建 Tarti class(form) 的新实例:
Tarti v = new Tarti();
v.Hide();
string a = v.weight;
string[] split = a.Split('.'); - 在这种情况下数组元素计数 - 零,为此你得到“索引超出数组范围”错误
我有一个体重秤应用程序。我想将值传递到另一个表单位置,但出现错误。我刚毕业,不懂太多,很遗憾,你能帮帮我吗?
我的称重应用:
namespace Tartı
{
public partial class Tarti : Form
{
public SerialPort _serialPort = null;
public Tarti()
{
InitializeComponent();
Control.CheckForIllegalCrossThreadCalls = false;
_serialPort = new SerialPort("COM4", 9600, Parity.None, 8);
_serialPort.StopBits = StopBits.One;
_serialPort.ReadTimeout = 1000;
_serialPort.DataReceived += new SerialDataReceivedEventHandler(_serialPort_DataReceived);
_serialPort.Open();
}
public string weight = "";
private delegate void Closure();
private void _serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
int dataLength = _serialPort.BytesToRead;
byte[] data = new byte[dataLength];
int nbrDataRead = _serialPort.Read(data, 0, dataLength);
if (nbrDataRead == 0)
return;
string str = System.Text.Encoding.UTF8.GetString(data);
double number;
if (Double.TryParse(str, out number))
{
txtWeight.Text = string.Format("{0:0.000}", str);
}
else
{
var doubleArray = Regex.Split(str, @"[^0-9\.]+")
.Where(c => c != "." && c.Trim() != "");
string[] str1 = ((System.Collections.IEnumerable)doubleArray)
.Cast<object>()
.Select(x => x.ToString())
.ToArray();
if (str1 != null && str1.Length > 0)
{
txtWeight.Text = string.Format("{0:0.000}", str1[0]);
txtWeight.ForeColor = Color.Red;
weight = txtWeight.Text;
_serialPort.Close();
}
}
}
private void Tarti_Load(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
}
}
}
其他表单申请数据需要来此申请:
private void AgirlikAl_Click(object sender, EventArgs e)
{
Tarti v = new Tarti();
v.Hide();
string a = v.weight;
string[] split = a.Split('.');
PackingReal.Text = split[0].ToString();
PackingDecimal.Text = split[1].ToString();
}
它给出以下错误消息: 附加信息:索引超出数组范围。我该如何解决这个问题?
检查您的“重量”变量值,它总是string.Empty,因为您总是在此处创建 Tarti class(form) 的新实例:
Tarti v = new Tarti();
v.Hide();
string a = v.weight;
string[] split = a.Split('.'); - 在这种情况下数组元素计数 - 零,为此你得到“索引超出数组范围”错误