簡體   English   中英

C#-偵聽串行端口-如何將數據打印到textBox中

[英]C# - Serial Port Listening - How to print data into textBox

我想使用GUI創建串行端口偵聽器。 我正在嘗試將接收到的數據打印到textBox 當我單擊按鈕程序必須開始收聽時,一切正常,但無法打印到textBox 這是EventHandler代碼:

void serialPortDataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            SerialPort sp = (SerialPort)sender;
            string indata = sp.ReadExisting();
            textBox1.AppendText(indata + "\r\n");
        }

和開始監聽的按鈕代碼:

mySerialPort.BaudRate = 9600;
mySerialPort.Parity = Parity.None;
mySerialPort.StopBits = StopBits.One;
mySerialPort.DataBits = 8;
mySerialPort.Handshake = Handshake.None;
mySerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
mySerialPort.Open();

需要一些幫助 :)

您可以按如下方式使用RichTextBox

第一種選擇

RichTextBox1.Text += sp.ReadExisting() + "\n";

第二個選項 -第二個選項使用委托,可以說是方法的簽名:

public delegate void AddDataDelegate(String myString);
public AddDataDelegate myDelegate;

private void Form1_Load(object sender, EventArgs e)
{
    this.myDelegate = new AddDataDelegate(AddDataMethod);
}

public void AddDataMethod(String myString)
{
    TextBox1.AppendText(myString);
}

private void SerialPortDataReceived(object sender, SerialDataReceivedEventArgs e)
{
   SerialPort sp = (SerialPort)sender;
   string s= sp.ReadExisting();

   TextBox1.Invoke(this.myDelegate, new Object[] {s});       
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM