Wie wollen Sie die Anzeige ein string-array in ein Textfeld

Hallo, ich bin neu in C# und ich Probleme mit meinem ersten windows-form-Anwendung.

Ich habe Daten aus seriellen Schnittstelle gearbeitet haben und einen Weg für die Verarbeitung und Speicherung der Daten in 3 verschiedene string arrays. Was kann ich nicht klappt ist die Anzeige der Daten in den arrays in Ihren eigenen individuellen text-Boxen, ich würde nur wollen, um die Anzeige der Daten im array gezeigt, durch den aktuellen index-position.

Ich habe 3 Textfelder in meine windows forms design-schon sind Sie benannt:
textBoxmag, textBoxlat und textBoxlon
Ich möchte die Anzeige der Variablen string[] mag, string[] lat und string[] lon in die entsprechenden Textfelder.

Bitte helft mir Jungs, die ich richtig hängen geblieben, obwohl es einfach scheinen mag, um Sie erfahrene C# Programmierer. Unten ist mein code:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {

        string RxString;//where the raw serial data is stored
        string[] mag = new string[1000];//where magnetic data is stored 
        string[] lat = new string[1000];//where latidude data is stored
        string[] lon = new string[1000];///where longitude data is stored 
        string ends = "\r\n";//end of data sentence identifier
        string starts = "G";//start of data sentence identifier

        int i; //index lat data 
        int j;//index lon data
        int k;//index mag data


        public Form1()
        {
            InitializeComponent();
        }

        private void buttonStart_Click(object sender, EventArgs e)
        {
            serialPort1.PortName = "COM5";//define sierial port in which PIC is connected to
            serialPort1.BaudRate = 4800;//set baud rate to match PIC

            serialPort1.Open();
            if (serialPort1.IsOpen)//if the port is open you can press the start button
            {
                buttonStart.Enabled = false;//start button disbaled
                buttonStop.Enabled = true;//stop button enabled
                textBox1.ReadOnly = false;//allow writing in text box
            }
        }

        private void buttondtop_Click(object sender, EventArgs e)
        {
            if (serialPort1.IsOpen)
            {
                serialPort1.Close();
                buttonStart.Enabled = true;
                buttonStop.Enabled = false;
                textBox1.ReadOnly = true;
            }
        }



        private void DisplayText(object sender, EventArgs e)
        {
            textBox1.AppendText(RxString);//add watever is in raw data string to what is already in text box

        }


        private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)//activates when port is open and data in buffer
        {
            RxString = serialPort1.ReadExisting();//read raw data from serial port into string
            this.Invoke(new EventHandler(DisplayText));//invoke allows it to call function diplay text

            if (RxString.StartsWith(starts))//if the string starts with "G"
            {
                if ((RxString.Length > 36))//if there is aleast one string sentence
                {
                    if (RxString.EndsWith(ends))//if the string ends with "\r\n" process the string
                        serialPort1.Close();//close serial port 
                    lat[i] = RxString.Split(',')[0].Substring(4);//extract latitude store in string array
                    i++;//increment index of latitude data array
                    lon[j] = RxString.Split(',')[2];//extract longitude store in string array
                    j++;//increment index of longitude data array
                    mag[k] = RxString.Split(',')[3].Substring(7).Trim();//extract magnetic data store in string array
                    k++;//increment index of magnteric data array
                    RxString = null;//Reset raw data string
                    serialPort1.Open();//open serial port ready for new string sentence
                }
            }
            else RxString = null;//if the raw data string sentence does not start with "G" reset the array
           }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (serialPort1.IsOpen) serialPort1.Close();
        }

        private void labellat_Click(object sender, EventArgs e)
        {

        }

        private void label3_Click(object sender, EventArgs e)
        {

        }
    }
}

InformationsquelleAutor James Archer | 2013-03-27

Schreibe einen Kommentar