C#跨线程访问控件,设置属性或是获得属性参数等
2014-04-18 22:20
435 查看
学C#不久,这是我总结的两点跨线程访问控件;
1、访问文本框,获得文本框的内容,文本框名:txtMessage
private delegate string GetSendMessageDelegate();//定义委托
private string getSendMessage()
{
string str
= "" ;
if (txtMessage.InvokeRequired)
{
GetSendMessageDelegate d
= new GetSendMessageDelegate(getSendMessage);
str= txtMessage.Invoke(d).ToString();
}
else
{
str = txtMessage.Text;
txtMessage.Text = "";
}
return str;
}
使用时,直接调用函数getSendMessage();就可返回文本框的文本内容。
2、访问线程,设置控件属性等,下面以设置文本框的文本为例,文本框name是txtClientsCount;
[align=left] [/align]
[align=left] private delegate void AddClientCountDelegate(string count);[/align]
[align=left] private void AddClientCount(string count)[/align]
[align=left] {[/align]
[align=left] if (txtClientsCount.InvokeRequired)[/align]
[align=left] {[/align]
AddClientCountDelegate d
= new AddClientCountDelegate(AddClientCount);
[align=left] txtClientsCount.Invoke(d, count);[/align]
[align=left] }[/align]
[align=left] else[/align]
[align=left] {[/align]
[align=left] txtClientsCount.Text = count;[/align]
[align=left] }[/align]
[align=left] }[/align]
1、访问文本框,获得文本框的内容,文本框名:txtMessage
private delegate string GetSendMessageDelegate();//定义委托
private string getSendMessage()
{
string str
= "" ;
if (txtMessage.InvokeRequired)
{
GetSendMessageDelegate d
= new GetSendMessageDelegate(getSendMessage);
str= txtMessage.Invoke(d).ToString();
}
else
{
str = txtMessage.Text;
txtMessage.Text = "";
}
return str;
}
使用时,直接调用函数getSendMessage();就可返回文本框的文本内容。
2、访问线程,设置控件属性等,下面以设置文本框的文本为例,文本框name是txtClientsCount;
[align=left] [/align]
[align=left] private delegate void AddClientCountDelegate(string count);[/align]
[align=left] private void AddClientCount(string count)[/align]
[align=left] {[/align]
[align=left] if (txtClientsCount.InvokeRequired)[/align]
[align=left] {[/align]
AddClientCountDelegate d
= new AddClientCountDelegate(AddClientCount);
[align=left] txtClientsCount.Invoke(d, count);[/align]
[align=left] }[/align]
[align=left] else[/align]
[align=left] {[/align]
[align=left] txtClientsCount.Text = count;[/align]
[align=left] }[/align]
[align=left] }[/align]
相关文章推荐
- C#线程中使用委托方式设置控件属性
- C# 跨线程访问或者设置UI线程控件的方法
- C# 跨线程访问及修改控件属性
- 黄聪:C#“多线程线程间操作无效: 从不是创建控件的线程访问它。”,跨线程修改控件属性解决方案
- C#中线程中设置另一个线程的控件属性
- C# WinForm控件开发如何设置属性的默认值
- C# 线程间操作无效: 从不是创建控件“receivemsg”的线程访问它。
- C# ComboBox控件“设置 DataSource 属性后无法修改项集合”的完美解决方法
- c#使用MethodInvoker解决跨线程访问控件
- c#线程问题:线程间操作无效:从不是创建控件 的线程访问它InvalidOperationException异常
- C#跨线程操作控件 无参数传递
- C# WinFrom 跨线程访问控件
- 【转】C#线程间操作无效: 从不是创建控件" XX" 的线程访问它
- c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)
- C# 线程操作 出现“从不是创建控件lstUser的线程访问它”错误的解决方法
- C#学习笔记:控件的字体(Font)属性设置
- c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)
- c#之如何安全的跨线程访问控件
- c#基础,单线程,跨线程访问和线程带参数
- C# Winform使用线程改变窗体控件的属性