C# 线程获取/设置控件(TextBox)值
线程读写控件需要用委托(delegate)与Invoke/BeginInvoke来进行
参考内容:http://www.cnblogs.com/runner/archive/2011/12/30/2307576.html
1. 获取TextBox中的值
代码一:
public delegate string GetTextBoxCallBack();
private string GetInputText()
{
try
{
if (this.txtInput.InvokeRequired)
{
GetTextBoxCallBack gtb = new GetTextBoxCallBack(GetInputText);
IAsyncResult ia = txtInput.BeginInvoke(gtb);
return (string)txtInput.EndInvoke(ia); //这里需要利用EndInvoke来获取返回值
}
else
{
return txtInput.Text;
}
}
catch (Exception ex)
{
return "";
}
}
代码二:
private string GetTextCallBack()
{
if (this.txtInput.InvokeRequired)
{
string inputTxt = string.Empty;
this.txtInput.Invoke(new MethodInvoker(delegate { inputTxt = txtInput.Text; }));
return inputTxt;
}
else
{
return this.txtInput.Text;
}
}
2.线程设置TextBox值
代码一:
delegate void SetTextBoxCallback(string text);
private void SetInputText(string text)
{
if (this.txtInput.InvokeRequired)
{
SetTextBoxCallback d = new SetTextBoxCallback(SetInputText);
this.Invoke(d, new object[] { text });
}
else
{
this.txtInput.Text = text;
}
}
代码二:
string changeTxt = "Change Text";
txtInput.Invoke(new Action<String>(p =>
{
txtInput.Text = changeTxt;
}), txtInput.Text);
C# 线程获取/设置控件(TextBox)值的更多相关文章
- WPF非UI线程获取修改控件属性值的方法
public class InvokeHelper { #region delegates private delegate object MethodInvoker(Control control, ...
- Android线程中设置控件
在Android中经常出现多线程中设置控件的值报错的情况,今天教大家封装一个简单的类避免这样的问题,同样也调用实现也非常的方便. 自定义类: /** * Created by wade on 2016 ...
- Jquary获取页面控件的值
一 Jquery获得服务器控件值的方法由于ASP.NET网页运行后,服务器控件会随机生成客户端id,jquery获取时候不太好操作,google了下,总结有以下3种方法: 服务器控件代码:<as ...
- asp.net后台获取html控件的值
1.asp.net后台获取前台type=text控件的值 前台:<input name="txtName" class="username" type=& ...
- C# 动态代码生成控件后其他事件不能获取该控件的值
1.新建web项目,添加两个Button控件,结果如图. 2.Button按钮控件点击事件代码如下 protectedvoid Button1_Click(object sender, EventAr ...
- 在后台获取Textarea控件的值
使用Request.Form方法 1.在前台设置name 属性 <textarea name="Content">hdjfhjdfhdj</textarea> ...
- 后台获取html控件的值
string name = Request.Form["Name1"].ToString(); “xxx” 里的是name值 Request["xx"]取到相同 ...
- .NET后台如何获取前台HMTL控件的值
很多时候我们需要HTML控件,感觉比服务器控件更加简介,清爽,那么如何获取HMTL控件的值呢,请看下面例子: 前台页面代码: <input id="Text1" type=& ...
- HTML控件ID和NAME属性及在CS页面获得.ASPX页面中HTML控件的值
<转载>来自网络 一.ID是在客户端脚本里用!NAME是用于获取提交表单的某表单域信息,在form里面,如果不指定Name的话,就不会发送到服务器端,所以有name属性的控件,必须指定na ...
随机推荐
- localStorage sessionStorage 用法
sessionStorage.getItem('key') // 获取 sessionStorage.setItem('key','value') //设置 sessionStorage.remove ...
- yidun验证码
from PIL import Imagefrom selenium import webdriverfrom selenium.webdriver import ActionChainsfrom s ...
- Promise实现ajax
利用Promise实现ajax GET function getAjax(url) { return new Promise((resolved,rejected)=>{ //创建ajax对象 ...
- IIS 字符串过长
jquery.datatable.js---弹窗要用极速模式 <?xml version="1.0" encoding="utf-8"?><c ...
- javascript 数组的简单应用
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- python url监控 并邮件报警
import timeimport requestsimport smtplibfrom email.mime.text import MIMETextimport datetime def Send ...
- 【jira】java.lang.OutOfMemoryError: GC overhead limit exceeded
登录JIRA访问打开缓慢,查询日志出现下述提示:java.lang.OutOfMemoryError: GC overhead limit exceeded 修改setenv.sh文件中的JVM配置, ...
- Prometheus
官方网址:https://prometheus.io/ GitHub网址:https://github.com/prometheus/prometheus 软件下载地址:https://prometh ...
- Going to university is supposed to be a mind-broadening experience.
Going to university is supposed to be a mind-broadening experience. That assertion is presumably mad ...
- Java运行时数据区
目录 1. 概述 2. Java内存结构 3. 程序计数器 4. Java虚拟机栈 5. 本地方法栈 6. 堆 7. 方法区 8. 运行时常量池 9. 直接内存 10. 总结 1. 概述 作为日常的J ...