winform多线程调用控件】的更多相关文章

对多线程操作控件的理解: 控件不能被非创造他的线程修改.需调用控件.beginvoke,注入UI线程.控件.beginvoke会把操作加入UI线程,阻塞画面响应.不要把耗时的计算放在控件.beginvoke里.即使多线程下,控件的更新是串行的.UI线程对控件调用永远优先工作线程,即使开始的比工作线程晚,下例B比C早执行. 例子: private void button1_Click(object sender, EventArgs e) { Thread th= new Thread(deleg…
private void Form1_Load(object sender, EventArgs e) { Thread newthread = new Thread(new ThreadStart(BackgroundProcess)); newthread.Start(); } /// <summary> /// 定义一个代理 /// </summary> private delegate void CrossThreadOperationControl(); private…
我是搞控件开发的,经常被人问,所以把一些问题记录了下来!如果有人再问,直接把地址丢给他看. 一. 经常会有人抱怨Winform界面闪烁,下面有几个方法可以尽可能的避免出现闪烁 1.控件的使用尽量以纯色为主,尽量不使用背景图,或者把大图改成小图,或者图片不缩放绘制,或者直接用不透明的纯色背景色(Winform控件透明是伪透明,是通过截取父容器背景来实现的,所以效率比较低,而且有时候会有延迟.而且多个透明控件叠加的时候不能分层显示出各个控件的透明效果) 2.自定义控件中使用双缓冲. 3.窗体边框最好…
WinForm容器内控件批量效验是否允许为空?设置是否只读?设置是否可用等方法分享 在WinForm程序中,我们有时需要对某容器内的所有控件做批量操作.如批量判断是否允许为空?批量设置为只读.批量设置为可用或不可用等常用操作,本文分享这几种方法,起抛砖引玉的作用,欢迎讨论! 1.  清除容器控件内里面指定控件的值的方法 /// <summary> /// 清除容器里面指定控件的值(通过控件的AccessibleName属性设置为"EmptyValue") /// </…
在C# 的应用程序开发中, 我们经常要把UI线程和工作线程分开,防止界面停止响应.  同时我们又需要在工作线程中更新UI界面上的控件, 下面介绍几种常用的方法 阅读目录 线程间操作无效 第一种办法:禁止编译器对跨线程访问做检查 第二种办法: 使用delegate和invoke来从其他线程中调用控件 第三种办法: 使用delegate和BeginInvoke来从其他线程中控制控件 第四种办法: 使用BackgroundWorker组件 源代码下载 线程间操作无效 界面上有一个button和一个la…
在VS2010中使用C#开发基于WinForm的ActiveX控件 常见的一些ActiveX大部分是使用VB.Delphi.C++开发,使用C#开发ActiveX要解决下面三个问题: 使.NET组件可以被COM调用 在客户机上注册后,ActiveX控件能通过IE的安全认证 已在客户机上注册时,安装包能通过IE的签名认证 配置:win 7,VS2010 步骤第一步,创建控件 1.创建WinForm控件,命名为WebForm,如图1: 2.设置项目的Assembly属性,如图2所示,并对Make A…
3步骤: 1.在需要自适应的Form中实例化全局变量   AutoSizeFormClass.cs源码在下方 AutoSizeFormClass asc = new AutoSizeFormClass(); 2.Form_Load事件中   asc.controllInitializeSize(this); 3.Page_SizeChanged事件中 asc.controlAutoSize(this); AutoSizeFormClass.cs源码如下: class AutoSizeFormCl…
源代码下载:MyActiveX20081229.rar 声明:本文代码基于CodeProject的文章<A Complete ActiveX Web Control Tutorial>修改而来,因此同样遵循Code Project Open License (CPOL). 在上一篇文章<COM组件开发实践(七)---多线程ActiveX控件和自动调整ActiveX控件大小(上)>中介绍了ActiveX控件中使用多线程的基本需求,并提出了一个简单的线程模型,但却出现了意想不到的问题,…
声明:本文代码基于CodeProject的文章<A Complete ActiveX Web Control Tutorial>修改而来,因此同样遵循Code Project Open License (CPOL). 最近遇到两个需求:1)在ActiveX控件中使用工作线程来完成底层的硬件设备扫描任务,并在工作线程中根据操作结果回调外部web页面的JavaScript函数:2)能根据控件任务的不同自动调整控件大小.但在查阅了大量资料后,发现网上讨论ActiveX中多线程开发的文章基本没有,最后…
一.说明 2012-11-30 曾经写过 <C# WinForm窗体及其控件自适应各种屏幕分辨率>  ,其中也讲解了控件自适应的原理.近期有网友说,装在panel里面的控件,没有效果? 这是控件嵌套的问题,加入即可实现.使用皮肤时,要注意在窗体Load事件中,有些控件(比如DataGridView)的子控件还没有完成,在这里记录控件的个数比较少,而在窗体SizeChanged事件中获取的比较多(是正常的). 解决的方法是,记录控件的初始位置和大小以及处理控件的缩放,都放到窗体SizeChang…