多线程篇:
CheckForIllegalCrossThreadCalls = false;

更多示例可见: http://www.cnblogs.com/z5337/p/4030287.html

if (!this.IsHandleCreated || this.Disposing || this.IsDisposed) return;
Invoke((MethodInvoker)(delegate {
// UI界面操作代码
}));
new Thread(delegate() {
// 准备在后台执行的代码
}).Start();

以上代码中,BeginInvoke、Invoke、MethodInvoker、EventHandler 可以互换

使用 BeginInvoke 之后,可以执行以下操作:

1. 进行某些操作,然后调用 EndInvoke 一直阻止到调用完成。

2. 使用  System.IAsyncResult.AsyncWaitHandle 属性获取 WaitHandle, 使用它的 WaitOne 方法一直阻止执行直到发出 WaitHandle 信号,然后调用 EndInvoke.

3. 轮询由 BeginInvoke 返回的 IAsyncResult ,确定异步调用何时完成,然后调用 EndInvoke.

4. 将用于回调方法的委托传递给 BeginInvoke。 异步调用完成后,将在 ThreadPool 线程上执行该方法。该回调方法将调用 EndInvoke 。

注意:每次都要调用 EndInvoke 来完成异步调用。

自定义窗体时,界面控件更新避免闪烁的太频繁的一个方法是:http://www.cnblogs.com/liutao409/archive/2010/12/20/1911470.html

在需要大量刷新控件前,对窗体发送一个SendMessage(toFreezeControl.Handle, WM_SETREDRAW, 0, 0);消息,这样就冻结了窗体和所有窗体子控件的刷新功能。

等刷新操作完成后,在对窗体发送一个SendMessage(toFreezeControl.Handle, WM_SETREDRAW, 1, 0);强制窗体和控件完成一次刷新。

[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);

要使  .net 4 支持 async 可以安装 nuget Microsoft.Bcl.Async

经实际测试并不好用,不止要打补丁 NDP40-KB2468871-v2-x86.exe,而且在 xp / win 7 下都可能报以下错

【异常信息】
A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread.

加入 System.Threading.Tasks.TaskScheduler.UnobservedTaskException += (s, v) => { };  此代码也没有改善。

--------

Reactive Extensions 使并行支持更多平台 可以安装 nuget Rx-Main

TPL 数据流库 可以安装 NuGet 包 Microsoft.Tpl.Dataflow

并发编程的集合在 .NET 框架,不可变集合在 NuGet 包 Microsoft.Bcl. Immutable

安装以上 nuget 后在 XP 下提示下面的错误

未能加载文件或程序集“System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes”或它的某一个依赖项。给定程序集名称或基本代码无效。 (异常来自 HRESULT:0x80131047) 
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

摘自: http://www.cnblogs.com/yelaiju/p/3375168.html

下载: https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=3556

后运行正常。

最新 Crystal Reports 之 VS2013 及客户端安装包下载链接

http://pan.baidu.com/s/1miltrUo

编译含 Crystal Reports 的程序集时如遇到错误 未能加载文件或程序集 win32_x86\dotnet1\crdb_adoplus.dll 或它的某一个依赖项

解决方法:http://blog.csdn.net/zlbcdn/article/details/8925121 在 App.config 中加入

<startup  useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>

listBox 控件加入颜色:http://www.cnblogs.com/wintalen/archive/2011/08/16/2140196.html

        // listBox1.DrawMode = DrawMode.OwnerDrawFixed;
private void listBox1_DrawItem(object sender, DrawItemEventArgs e) {
e.DrawBackground();
if (e.Index > -) {
string s = listBox1.Items[e.Index].ToString();
if (!string.IsNullOrEmpty(s)) {
Color vColor = e.ForeColor;
switch (s[]) {
case 'b':
vColor = Color.Blue;
break;
case 'e':
vColor = Color.Red;
break;
case 'g':
vColor = Color.Gray;
break;
}
using (Brush b = new SolidBrush(vColor)) {
e.Graphics.DrawString(s.Substring(), e.Font, b, e.Bounds);
}
}
}
e.DrawFocusRectangle();
}

一次客户端报异常:无法创建目录或文件。并且没有其它提示,反复判断故障原因,最后发现是

C:\Documents and Settings\Administrator\Local Settings\Temp 这个目录文件太多导致的,客户系统是 Win XP,C盘是 FAT32 格式,删除此文件夹后程序正常。

System.IO.Stream SuccessFileStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("TestApplication1.Success.wav");
if (SuccessFileStream != null)
{
SuccessSP = new System.Media.SoundPlayer();
SuccessSP.Stream = SuccessFileStream;
SuccessSP.Play();
}

获取项目资源的方式如上。

[转]Winform 经验集的更多相关文章

  1. [html]经验集

    禁止默认的右键菜单: window.document.oncontextmenu = function(){ return false;} WebBrowser 控件用法:(手动填充内容) // 首先 ...

  2. [转]Oracle 经验集

    -- 转换字符串为日期格式 to_date('2011-12-30 11:54:30','yyyy-MM-dd:hh24:mi:ss') Oracel 用 C# 连接,Microsoft 自带的 Sy ...

  3. [转]Windows 经验集

    Windows Server 2012 R2 显示 这台电脑 图标方法: 来自:https://jingyan.baidu.com/article/f25ef2544f6883482c1b82e5.h ...

  4. [转][Dapper]SQL 经验集

    condition.Append(" AND ChineseName like @name"); p.Add("@name", "%" + ...

  5. [java]经验集

    Calendar c = Calendar.getInstance(); c.set(1999,12,21); SimpleDateFormat sdf = new SimpleDateFormat( ...

  6. [Java.web][eclipse]经验集

    自动提示部分内容来自:http://www.cnblogs.com/mashuangying2016/p/6549991.html 使用 Eclipse 调试 Tomcat 的设置: Window - ...

  7. [转][c#]注册表经验集

    在 win7 64位的系统中,为了将程序做成绿化版(单EXE文件),一些设置准备放到 regedit(注册表)中. 测试时发现网上的 demo 可以读,但写的值调试不报错,相应位置却不存在,困扰了许久 ...

  8. [转]加密经验集 => C#

    下载地址 代码摘自 C#高级编程(第7版) 第579页 不对称加密

  9. [转]SQLite 经验集

    SQLite 的默认时间 转自:http://www.cnblogs.com/pennant/archive/2011/08/11/2134897.html select strftime('%Y-% ...

随机推荐

  1. LeetCode OJ:Maximal Square(最大矩形)

    Given a 2D binary matrix filled with 0's and 1's, find the largest square containing all 1's and ret ...

  2. 安装visio 2010:您的计算机上的Office 2003安装已损坏,安装程序无法继续。请删除或修复office 2003产品并重新运行安装程序

    您的计算机上的Office 2003安装已损坏,安装程序无法继续.请删除或修复office 2003产品并重新运行安装程序   最近打算安装visio 2010时出现 以下错误: “您的计算机上的Of ...

  3. Kafka 单节点单Kafka Broker集群

    下载与安装 从 http://www.apache.org/dist/kafka/ 下载最新版本的 kafka,这里使用的是 kafka_2.12-0.10.2.1.tgz $ tar zxvf ka ...

  4. Java 7 新特性try-with-resources语句

    1.什么是try-with-resources语句 try-with-resources 语句是一个声明一个或多个资源的 try 语句.一个资源作为一个对象,必须在程序结束之后随之关闭. try-wi ...

  5. 关于HslCommunication组件的双模式客户端的说明,此说明适用于所有的派生类客户端,包括三菱,西门子,欧姆龙,modbustcp,机器人,simplifyNet客户端等等

    前言 本文主要是答疑文章,针对广大网友非常频繁的提问而总结的问题 nuget地址:https://www.nuget.org/packages/HslCommunication/            ...

  6. flutter笔记1:VScode安装dart code插件踩坑记录

    新手菜鸟一枚,想从产品转入技术坑,目标:移动端APP开发.最近听技术达人 飞狐 说flutter beta发布了,支持跨平台APP开发,各种强大易上手,于是乎零基础入坑~话说想提高英文水平的同学,请移 ...

  7. openssl之aes加密(源码分析 AES_encrypt 与 AES_cbc_encrypt ,加密模式)

    首先要了解AES加密是什么,以及几种加密模式的区别.之后才是编程.具体的编程案例,在下面的链接. openssl之aes加密(AES_cbc_encrypt 与 AES_encrypt 的编程案例) ...

  8. div横排放置对齐问题;block,inline,inline-block区别

    1.左右两个div都设置为float:left,如果右边div没有设置宽度,右边div的宽度会根据div里的内容自动调整. 缺点:不易控制 2.只有左侧div设置为float:left,右侧div设置 ...

  9. CF1114F Please, another Queries on Array?

    CF1114F Please, another Queries on Array? 考虑用线段树维护取模后的区间积和真正的区间积所含有的质因子. 每次询问查得这两个值后,一乘一除,即可算出该区间积的欧 ...

  10. BZOJ2687 交与并/BZOJ2369 区间【决策单调性优化DP】【分治】

    Description 对于一个区间集合 {A1,A2--Ak}(K>1,Ai不等于Aj(i不等于J),定义其权值 S=|A1∪A2∪--AK|*|A1∩A2--∩Ak| 即它们的交区间的长度乘 ...