请问如何在serialPort_DataReceived中给不是DataReceived所在线程的textbox赋值
小弟把原有的C#程序移植到了wince6.0,原有程序没有问题,是从串口读取信息然后赋值给textbox。但是在wince中不能使用System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;于是就报错了:
请问是不是应该使用委托,这块不是很懂,望指教,以下是部分代码:
//读取出厂信息
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = "";
textBox7.Text = "";
textBox36.Text = "";
textBox37.Text = "";
textBox2.Text = "";
this.serialPort1.Write(imfall, 0, 2);
flag = 4;
}
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
while (this.serialPort1.BytesToRead > 0)
{
buffer[i] = this.serialPort1.ReadByte();
i++;
}
if ((flag == 4) && (i > 31))
{
string imf1 = Convert.ToString(buffer[0]);
textBox2.Text= imf1;
string imf2 = Convert.ToString(buffer[1]);
textBox7.Text = "20" + imf2;
string imf3 = Convert.ToString(buffer[2]);
textBox36.Text = imf3;
string imf4 = Convert.ToString(buffer[3]);
textBox37.Text = imf4;
int t = 0;
for (t = 4; t < 32; t++)
{
if (buffer[t] == 32)
continue;
textBox1.Text = textBox1.Text + (char)buffer[t];
}
i = 0;
flag = 0;
int j = 0;
for (j = 0; j < 30; j++)
{
buffer[i] = 0;
}
}
}
希望各位大侠能给我点例子,怎么修改比较好,不甚感激!
补充:.NET技术 , C#