title: How do you display a string array in a text box
body: <p>Hi I am new to C# and I having problems with my first windows form application.</p>
  
  <p>I have data coming in from serial port and have worked out a way of processing and storing the data into 3 different string arrays.  What I cant work out is how to display the data in the arrays into their own individual text boxes, I would only want to display the data in the array pointed to by the current index position.</p>
  
  <p>I have 3 text boxes in my windows forms design already they are named:
  <code>textBoxmag</code>, <code>textBoxlat</code> and <code>textBoxlon</code>
  I would like to display the variables <code>string[] mag</code>, <code>string[] lat</code> and <code>string[] lon</code> in their corresponding text boxes.</p>
  
  <p>Please help me guys I properly stuck with this even though it may seem simple to you more experienced C# programmers. Below is my code:</p>
  
  <pre><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 &gt; 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)
          {
  
          }
      }
  }
  </code></pre>