Jak odswiezyc na biezaco zawartosc textboxa po odbiorze z FTDI . Zrobilem program, korzystając z D2XX, ktory wyswietla poprawna zawartosc, ale jak zmieniam dane nic sie nie zmienia. Gdy zmienie wejscie i uruchomie ponownie program to dopiero wtedy wyswietla poprawna wartosc.

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;
using FTD2XX_NET;
using System.Threading;

namespace counter
{
    public partial class Form1 : Form
    {


        public Form1()
        {
            
                InitializeComponent();
            readData();
               


            }

        

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void textBox5_TextChanged(object sender, EventArgs e)
        {
            textBox5.Refresh();
        }

        private void label6_Click(object sender, EventArgs e)
        {

        }

        private void readData()
        {
            
                UInt32 ftdiDeviceCount = 0;
                bool isopen;
                string readData;
                UInt32 numBytesRead = 0;

                FTDI.FT_STATUS ftStatus = FTDI.FT_STATUS.FT_OK;

                FTDI myFtdiDevice = new FTDI();


                ftStatus = myFtdiDevice.GetNumberOfDevices(ref ftdiDeviceCount);


                if (ftStatus == FTDI.FT_STATUS.FT_OK)
                {
                    textBox1.Text += ftdiDeviceCount.ToString();

                }



                FTDI.FT_DEVICE_INFO_NODE[] ftdiDeviceList = new FTDI.FT_DEVICE_INFO_NODE[ftdiDeviceCount];


                ftStatus = myFtdiDevice.GetDeviceList(ftdiDeviceList);

                if (ftStatus == FTDI.FT_STATUS.FT_OK)
                {
                    for (UInt32 i = 0; i < ftdiDeviceCount; i++)
                    {

                        textBox2.Text += ftdiDeviceList[i].SerialNumber.ToString();
                        textBox3.Text += ftdiDeviceList[i].Description.ToString();

                    }
                }

                if (ftStatus == FTDI.FT_STATUS.FT_OK)
                {

                    ftStatus = myFtdiDevice.OpenBySerialNumber(ftdiDeviceList[0].SerialNumber);
                    if (ftStatus == FTDI.FT_STATUS.FT_OK)
                    {
                        isopen = myFtdiDevice.IsOpen;
                        textBox4.Text += isopen;
                    }

                    ftStatus = myFtdiDevice.SetBaudRate(19200);
                    ftStatus = myFtdiDevice.SetDataCharacteristics(8, 1, 0);
                    ftStatus = myFtdiDevice.SetFlowControl(FTDI.FT_FLOW_CONTROL.FT_FLOW_RTS_CTS, 0x11, 0x13);
                    ftStatus = myFtdiDevice.SetTimeouts(1000, 0);



                    ftStatus = myFtdiDevice.Read(out readData, 8, ref numBytesRead);
                    myFtdiDevice.Close();
                   
                    textBox5.Text = readData;

                }


        }
    }
}