我有 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('.'); - 在这种情况下数组元素计数 - 零,为此你得到“索引超出数组范围”错误