摘要: 优雅的解决 多线程中访问 UI 的问题1.在WinForm 程序中可以在Form的构造函数中. 将 "是否检察跨线程的控件访问" 设为 False. 就解决了. 就可以正常的使用控件了. Control.CheckForIllegalCrossThreadCalls = false;2.就是使用控件的Invoke 方法比如: label1.Invoke(new MethodInvoker(delegate () {this.label1.text = "靠...!";}));使用Lambda 表达示会更优雅一点: label1.Inovke(new Me 阅读全文
posted @ 2012-02-08 18:46 easyfrog 阅读(4657) 评论(0) 推荐(0) 编辑
摘要: 用C# GDI+ 来模拟 WIN7 的水泡屏保.需要解决以下三个问题: 1.水泡与边缘碰撞的模拟 2.水泡之间的碰撞模拟.3.创建水泡(Ball)的类 1.水泡与边缘碰撞的模拟其实很简单. 一开始.我还觉得还需要用反弹公式去计算. 后来才发现. 只在X,Y(水泡的位置),在到边缘时取下负值即可模拟. View Code 1 public void Move(int gameWidth,int gameHeight) 2 { 3 if (X < 0 || X > gameWidth - Radius * 2) { // 在X的值小于0 或... 阅读全文
posted @ 2012-02-06 22:56 easyfrog 阅读(3242) 评论(4) 推荐(2) 编辑
摘要: 为控制增加双缓冲 的目 的为了在重绘时避免闪烁.Panel类的setStyle 方法不是Public的. 所以我们需要自定义一个Panel类,在其构造函数中定义setStyle.this.SetStyle(ControlStyles.AllPaintingInWmPaint|//不擦除背景 ,减少闪烁 ControlStyles.OptimizedDoubleBuffer|//双缓冲 ControlStyles.UserPaint,//使用自定义的重绘事件,减少闪烁 true);代码实例: 阅读全文
posted @ 2012-02-04 23:10 easyfrog 阅读(4046) 评论(1) 推荐(0) 编辑
摘要: 在使用SharpDevelop编写C#程序时,经常要用到 外部的资源文件,比如:图片,声音等. 我们需要将这些谁的嵌入我们的程序.dll or .exe中. 方法如下:在工程树中点 右键->添加项->其它->空资源文件.需要引入Resources 命名空间:using System.Resources;创建一个ResourceManager (资源管理类的实例):ResourceManager rm = new ResourceManager("nameSpace.Properties.MyRes",this.GetType().Assembly); &q 阅读全文
posted @ 2012-02-04 09:08 easyfrog 阅读(1765) 评论(1) 推荐(3) 编辑
摘要: SharpDevelop4.1 功能强大.跟VS 相差无几了 ,但体积只有16.7M(安装文件). 一直在用它写C#程序.前段时间看了VIM等编辑器的深色配色很酷. 所以为SharpDevelop也弄了一个..效果如下:下载地址:http://www.cglobal.0fees.net/tmp/SharpDevelopProperties.xml(放入位置:C:\Users\你的机器名\AppData\Roaming\ICSharpCode\SharpDevelop4)*此配色只适用于sharpdevelop4.1* 阅读全文
posted @ 2012-01-15 20:53 easyfrog 阅读(2380) 评论(11) 推荐(2) 编辑
摘要: C# Array 中的 Foreach 与 FindAll 方法.. 是两个很有用的语法糖. 语法糖 就是为了提高代码的可读性,及编写的效率的 你不使用它完成可以. 只是使用它的它会使你的代码更加清爽.比如:以往我们要输出整个数组我们一般会用到foreach 遍输出:foreach(string s in strArr){ Console.WriteLine(s);}而使用 语法糖.只需要一名代码就OK了:Array.ForEach(strArr,Console.WriteLine);上代码,详细测试下这两个方法的使用:View Code 1 using System; 2 3 clas... 阅读全文
posted @ 2012-01-14 09:34 easyfrog 阅读(2916) 评论(0) 推荐(1) 编辑
摘要: 使用Unity3D 中的 ShaderLab 实现两张不同贴图之前的混合 类似于3dsMAX 中的Blend材质.1.在Properties 中定义三个变量.我们需要使用的..1. _Color 主要是用它的 Alpha 来进行两张图的混合 ,2.两张需要进行操作的贴图2.在混合时主要是使用 SetTexture 中的 Combine scr1 lerp(constant) src2. 这里要注意.在一个SetTextrue 中我们只能对一个texture来操作. 所以在混合前我们需要先用一个SetTexture 将第一张图贴上去. 然后再用Combine previous lerp(cons 阅读全文
posted @ 2012-01-12 15:47 easyfrog 阅读(5259) 评论(0) 推荐(0) 编辑
摘要: Enum 可以通过 GetValues 将枚举转为Array .View Code 1 using System; 2 3 enum EnumNames 4 { 5 liuxiaolin, 6 zhoutianchi, 7 zhouqihan 8 } 9 class EnumTest10 {11 static void Main()12 {13 int n = Enum.GetValues(typeof(EnumNames)).Length; //用Enum.GetValues(typeof(EnumNames)) 返回一个数组,le... 阅读全文
posted @ 2012-01-10 18:12 easyfrog 阅读(1782) 评论(0) 推荐(0) 编辑
摘要: 用惯了 SharpDevelop (因为比VS 小巧 功能强大 虽然没VS强大 . 不过对于我一个业余程序爱好者 完全的够用了!) 来写C# 的WinForm程序. 超级简单的拖控件的方式在工作口确实提高的相当大的效率. 但今天突然想试下脱离IDE 如果来做一个简单的窗口程序呢.. 真是一时没想到方法 .被IDE惯坏了~ . 写下这个简单的初级的小程序,留在这里,就当学习笔记了吧~~ :View Code 1 using System; 2 using System.Windows.Forms; 3 4 namespace ztc 5 { 6 class Program 7 ... 阅读全文
posted @ 2012-01-08 21:42 easyfrog 阅读(683) 评论(0) 推荐(0) 编辑
摘要: 在C#中对数组及集合的排序(Sort) .需要提拱一个"比较器" (一个实现 IComparer 接口的类) 也可以用一个方法做比较器 这个方法 需要返回 0 1 或 -1.View Code 1 using System; 2 3 class ListSort 4 { 5 static void Main() 6 { 7 int[] nums = {3,6,8,1,2,9}; 8 9 Array.Sort(nums , delegate(int i,int j){ //使用匿名方法实现 Comparison 10 ... 阅读全文
posted @ 2012-01-04 14:15 easyfrog 阅读(2678) 评论(2) 推荐(1) 编辑