Tôi có mã sau cần dữ liệu được đọc từ cổng và sau đó hiển thị trong hộp văn bản. Tôi đang sử dụng xử lý sự kiện DataReceived cho mục đích này nhưng donot biết làm thế nào để hiển thị dữ liệu này trong hộp văn bản. Từ nhiều nguồn khác nhau, tôi đã học được rằng phương thức Invoke nên được sử dụng cho điều này nhưng donot biết cách sử dụng nó. Gợi ý xin vui lòng ...Cách hiển thị dữ liệu đã đọc trong trình xử lý sự kiện được nhận dữ liệu của cổng nối tiếp
private void Form1_Load(object sender, EventArgs e)
{
//SerialPort mySerialPort = new SerialPort("COM3");
mySerialPort.PortName = "COM3";
mySerialPort.BaudRate = 9600;
mySerialPort.Parity = Parity.None;
mySerialPort.StopBits = StopBits.One;
mySerialPort.DataBits = 8;
mySerialPort.Handshake = Handshake.None;
mySerialPort.DataReceived += new SerialDataReceivedEventHandler(mySerialPort_DataReceived);
mySerialPort.Open();
}
private void mySerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string s= sp.ReadExisting();
// next i want to display the data in s in a textbox. textbox1.text=s gives a cross thread exception
}
private void button1_Click(object sender, EventArgs e)
{
mySerialPort.WriteLine("AT+CMGL=\"ALL\"");
}
tôi đã thử mã mẫu của bạn và xây dựng giải pháp C# đơn giản dựa trên chủ đề này. tôi không thể đọc 'DataReceived 'trong modem của mình. Tôi đang sử dụng modem wavecom để kiểm tra số dư. Giúp tôi để sửa nó? – aminvincent