[英]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.