我想用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();
需要一些帮助:)
答案 0 :(得分:1)
您可以按如下方式使用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});
}