亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從事件處理程序更改 textBox.text

從事件處理程序更改 textBox.text

C#
動漫人物 2022-07-23 09:11:31
似乎無法在這里找到我一生的答案。無論如何,事件處理程序如何更改 Form 的 textBox.text?private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)        {            SerialPort sp = (SerialPort)sender;            string indata = sp.ReadExisting();            //Do what ever you want with the data            textBox2.Text = "test"; //alas, this doesn't work        }按下按鈕時創建事件處理程序private void button3_Click(object sender, EventArgs e)        {                    serialPort1.PortName = comboBox1.Text;                    serialPort1.BaudRate = Convert.ToInt32(comboBox2.Text);                    serialPort1.RtsEnable = true;                    serialPort1.DtrEnable = true;                    serialPort1.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);                    serialPort1.Open();                }            }任何幫助是極大的贊賞
查看完整描述

2 回答

?
慕雪6442864

TA貢獻1812條經驗 獲得超5個贊

DataReceivedHandler方法被標記static,因此它不能訪問實例成員textBox2。刪除static能解決問題嗎?



查看完整回答
反對 回復 2022-07-23
?
SMILET

TA貢獻1796條經驗 獲得超4個贊

這DataReceived是在它自己的線程上,您需要調用 GUI 才能更新文本框。


private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)

{

    string Data = serialPort1.ReadExisting();


    this.Invoke((MethodInvoker)delegate

    {

        textBox2.AppendText(Data);

    });

}


查看完整回答
反對 回復 2022-07-23
  • 2 回答
  • 0 關注
  • 112 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號