以下代码可以在label控件中实时显示数据,可是我想在listview中也实时显示,这个线程不会写
public delegate void HandleInterfaceUpdateDelegate(string text);
//委托类型声明
private HandleInterfaceUpdateDelegate interfaceUpdateHandle1;
private HandleInterfaceUpdateDelegate interfaceUpdateHandle2;
private HandleInterfaceUpdateDelegate interfaceUpdateHandle3;
private HandleInterfaceUpdateDelegate interfaceUpdateHandle4;
private HandleInterfaceUpdateDelegate interfaceUpdateHandle5;
private HandleInterfaceUpdateDelegate interfaceUpdateHandle6;
private HandleInterfaceUpdateDelegate interfaceUpdateHandle7;
private void UpdateTextBox1(string text)
{
label8.Text = text;
}
private void UpdateTextBox2(string text)
{
label9.Text = text;
}
private void UpdateTextBox3(string text)
{
label10.Text = text;
}
private void UpdateTextBox4(string text)
{
label11.Text = text;
}
private void UpdateTextBox5(string text)
{
label12.Text = text;
}
private void UpdateTextBox6(string text)
{
label13.Text = text;
}
//private void UpdateListview(string text)
//{
// listView1.Items.AddRange(LItem);
//}
public void Form1_Load(object sender, EventArgs e)
{
sPort1.DataReceived += new SerialDataReceivedEventHandler(DataReceived); //事件挂钩
interfaceUpdateHandle1 = new HandleInterfaceUpdateDelegate(UpdateTextBox1); //封装UpdateTextBox方法,实例化委托
interfaceUpdateHandle2 = new HandleInterfaceUpdateDelegate(UpdateTextBox2);
interfaceUpdateHandle3 = new HandleInterfaceUpdateDelegate(UpdateTextBox3);
interfaceUpdateHandle4 = new HandleInterfaceUpdateDelegate(UpdateTextBox4);
interfaceUpdateHandle5 = new HandleInterfaceUpdateDelegate(UpdateTextBox5);
interfaceUpdateHandle6 = new HandleInterfaceUpdateDelegate(UpdateTextBox6);
interfaceUpdateHandle7 = new HandleInterfaceUpdateDelegate(UpdateListview);
}
private void DataReceived(object sender, SerialDataReceivedEventArgs e)
{
this.BeginInvoke(interfaceUpdateHandle1, new string[] { iconts });
this.BeginInvoke(interfaceUpdateHandle2, new string[] { strNam });
this.BeginInvoke(interfaceUpdateHandle3, new string[] { strDep });
this.BeginInvoke(interfaceUpdateHandle4, new string[] { strDTd });
this.BeginInvoke(interfaceUpdateHandle5, new string[] { strDTt });
this.BeginInvoke(interfaceUpdateHandle6, new string[] { strSta });
//this.Invoke(new HandleInterfaceUpdateDelegate(this.UpdateTextBox1), iconts);
//this.Invoke(new HandleInterfaceUpdateDelegate(this.UpdateTextBox2), strNam);
//interfaceUpdateHandle7(strSta, li);
//string strXX = Convert.ToString(label8.Text + "," + label9.Text + "," + label10.Text + "," + strDnm);
//ListViewItem li = new ListViewItem();
//li.SubItems[0].Text = Convert.ToString(id);
//li.SubItems.Add(Convert.ToString(DTd));
//li.SubItems.Add(strXX);
//li.SubItems.Add(strSta);
//listView1.Items.AddRange(new ListViewItem[] {li});
//id = id + 1;
}
public delegate void HandleInterfaceUpdateDelegate(string text);
//委托类型声明
private HandleInterfaceUpdateDelegate interfaceUpdateHandle1;
private HandleInterfaceUpdateDelegate interfaceUpdateHandle2;
private HandleInterfaceUpdateDelegate interfaceUpdateHandle3;
private HandleInterfaceUpdateDelegate interfaceUpdateHandle4;
private HandleInterfaceUpdateDelegate interfaceUpdateHandle5;
private HandleInterfaceUpdateDelegate interfaceUpdateHandle6;
private HandleInterfaceUpdateDelegate interfaceUpdateHandle7;
private void UpdateTextBox1(string text)
{
label8.Text = text;
}
private void UpdateTextBox2(string text)
{
label9.Text = text;
}
private void UpdateTextBox3(string text)
{
label10.Text = text;
}
private void UpdateTextBox4(string text)
{
label11.Text = text;
}
private void UpdateTextBox5(string text)
{
label12.Text = text;
}
private void UpdateTextBox6(string text)
{
label13.Text = text;
}
//private void UpdateListview(string text)
//{
// listView1.Items.AddRange(LItem);
//}
public void Form1_Load(object sender, EventArgs e)
{
sPort1.DataReceived += new SerialDataReceivedEventHandler(DataReceived); //事件挂钩
interfaceUpdateHandle1 = new HandleInterfaceUpdateDelegate(UpdateTextBox1); //封装UpdateTextBox方法,实例化委托
interfaceUpdateHandle2 = new HandleInterfaceUpdateDelegate(UpdateTextBox2);
interfaceUpdateHandle3 = new HandleInterfaceUpdateDelegate(UpdateTextBox3);
interfaceUpdateHandle4 = new HandleInterfaceUpdateDelegate(UpdateTextBox4);
interfaceUpdateHandle5 = new HandleInterfaceUpdateDelegate(UpdateTextBox5);
interfaceUpdateHandle6 = new HandleInterfaceUpdateDelegate(UpdateTextBox6);
interfaceUpdateHandle7 = new HandleInterfaceUpdateDelegate(UpdateListview);
}
private void DataReceived(object sender, SerialDataReceivedEventArgs e)
{
this.BeginInvoke(interfaceUpdateHandle1, new string[] { iconts });
this.BeginInvoke(interfaceUpdateHandle2, new string[] { strNam });
this.BeginInvoke(interfaceUpdateHandle3, new string[] { strDep });
this.BeginInvoke(interfaceUpdateHandle4, new string[] { strDTd });
this.BeginInvoke(interfaceUpdateHandle5, new string[] { strDTt });
this.BeginInvoke(interfaceUpdateHandle6, new string[] { strSta });
//this.Invoke(new HandleInterfaceUpdateDelegate(this.UpdateTextBox1), iconts);
//this.Invoke(new HandleInterfaceUpdateDelegate(this.UpdateTextBox2), strNam);
//interfaceUpdateHandle7(strSta, li);
//string strXX = Convert.ToString(label8.Text + "," + label9.Text + "," + label10.Text + "," + strDnm);
//ListViewItem li = new ListViewItem();
//li.SubItems[0].Text = Convert.ToString(id);
//li.SubItems.Add(Convert.ToString(DTd));
//li.SubItems.Add(strXX);
//li.SubItems.Add(strSta);
//listView1.Items.AddRange(new ListViewItem[] {li});
//id = id + 1;
}
public delegate void myinvole(string str);
private void button3_Click(object sender, EventArgs e)
{
Thread t = new Thread(new ThreadStart(GetTextFun));
t.Start();
}
private void GetTextFun()
{
setText("中华人民共和国!!!!");
}
private void setText(string str)
{
if (textBox1.InvokeRequired)
{
myinvole _myinvole = new myinvole(setText);
this.Invoke(_myinvole, new object[] { str });
}
else
{
this.textBox1.Text = str;
}
}
这是线程访问控件的代码,例子比较简单,容易理解!!
谢谢回复
{
Thread t = new Thread(new ThreadStart(GetTextFun));
t.Start();
}
private void GetTextFun()
{
setText("中华人民共和国!!!!");
}
private void setText(string str)
{
if (textBox1.InvokeRequired)
{
myinvole _myinvole = new myinvole(setText);
this.Invoke(_myinvole, new object[] { str });
}
else
{
this.textBox1.Text = str;
}
}这个就是啊,怎么叫给你呢,给你个例子,你也要自己研究性一下啊,这样对你好,给你代码,是对你的不负责任啊