线程读写控件需要用委托(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)值的更多相关文章

  1. WPF非UI线程获取修改控件属性值的方法

    public class InvokeHelper { #region delegates private delegate object MethodInvoker(Control control, ...

  2. Android线程中设置控件

    在Android中经常出现多线程中设置控件的值报错的情况,今天教大家封装一个简单的类避免这样的问题,同样也调用实现也非常的方便. 自定义类: /** * Created by wade on 2016 ...

  3. Jquary获取页面控件的值

    一 Jquery获得服务器控件值的方法由于ASP.NET网页运行后,服务器控件会随机生成客户端id,jquery获取时候不太好操作,google了下,总结有以下3种方法: 服务器控件代码:<as ...

  4. asp.net后台获取html控件的值

    1.asp.net后台获取前台type=text控件的值 前台:<input name="txtName" class="username" type=& ...

  5. C# 动态代码生成控件后其他事件不能获取该控件的值

    1.新建web项目,添加两个Button控件,结果如图. 2.Button按钮控件点击事件代码如下 protectedvoid Button1_Click(object sender, EventAr ...

  6. 在后台获取Textarea控件的值

    使用Request.Form方法 1.在前台设置name 属性 <textarea name="Content">hdjfhjdfhdj</textarea> ...

  7. 后台获取html控件的值

    string name = Request.Form["Name1"].ToString(); “xxx” 里的是name值 Request["xx"]取到相同 ...

  8. .NET后台如何获取前台HMTL控件的值

    很多时候我们需要HTML控件,感觉比服务器控件更加简介,清爽,那么如何获取HMTL控件的值呢,请看下面例子: 前台页面代码: <input id="Text1" type=& ...

  9. HTML控件ID和NAME属性及在CS页面获得.ASPX页面中HTML控件的值

    <转载>来自网络 一.ID是在客户端脚本里用!NAME是用于获取提交表单的某表单域信息,在form里面,如果不指定Name的话,就不会发送到服务器端,所以有name属性的控件,必须指定na ...

随机推荐

  1. Windows 10 +VS2019 编译OpenCV 4.1.0

    准备环境 安装cmake 官网 获取代码 github 下载拓展库opencv_contrib github 生成Sln cmake安装完后桌面会有一个快捷方式,可打开cmakeGUI,打开它. 第一 ...

  2. mvcmovie sample 在window10 下的部署问题(HTTP Error 500.19 - Internal Server Error)

    mvcmovie sample 在window10 下的部署问题 使用VS2018配置好了mvcmovie sample,发布到IIS后,打开报错: HTTP Error 500.19 - Inter ...

  3. kolla queens on centos7.5 -all in one

    目录 环境准备 开始配置 快照,快照,快照 pull镜像并部署 登录配置OpenStack 环境准备 我这里用workstation创建了一个虚拟机,安装centos7.5 mini系统,这台虚拟机上 ...

  4. debian apache2 多端口对应多文件 虚拟端口配置

    apache2单IP多端口创建虚拟站点如下: 1.转到配制目录虚拟站点配制目录 cd /etc/apache2/ ​ 2.配置新增多的端口 编辑上级目录中的端口配制文件sudo gedit ports ...

  5. JavaScript数组方法--pop、shift、unshift

    其实还有一个方法push,应该放在一起说的,问题是他跟concat跑了,那只剩下这哥仨了. pop:pop()方法从数组中删除最后一个元素,并返回该元素的值.此方法更改数组的长度.捎带一下push,p ...

  6. 常见cmd命令,开发人员必备

    运行程序 notepad--------打开记事本 calc-----------启动计算器 regedit.exe-------注册表 write----------写字板 mmc--------- ...

  7. ActiveMQ(3)---ActiveMQ原理分析之消息持久化

    持久化消息和非持久化消息的存储原理 正常情况下,非持久化消息是存储在内存中的,持久化消息是存储在文件中的.能够存储的最大消息数据在${ActiveMQ_HOME}/conf/activemq.xml文 ...

  8. 40_redux_counter应用_redux完善版本

    项目结构: 代码: import React from 'react'; import ReactDOM from 'react-dom'; import store from './redux/st ...

  9. Hadoop Java API操作HDFS文件系统(Mac)

    1.下载Hadoop的压缩包 tar.gz   https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/ 2.关联jar包 在 ...

  10. ActiveMq Windows 配置优化

    最近ActiveMQ 5.15.3 会报 OutofMemory的错误 在 wrapper.conf中 #wrapper.java.additional.8=-Dorg.apache.activemq ...