摘要:
MDI应用程序中最基本的问题之一就是对子窗体的管理。 在开发一个应用程序的时候,我遇到一个问题。很多子窗体是类似的,但又有细微的差别。我用父窗体去管理这些子窗体的时候,很多方法是一样的,但具体实现上又可能会有所不同。因此就需要多态来实现对子窗体的管理,具体做法如下: 1.编写一个父类FormX,它继承自Form类。它基本上什么都不做,只是写一些虚函数。2.所有的子窗体类和MDI窗体类均继承自For... 阅读全文
摘要:
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.Sql;using System.Data.Sq... 阅读全文
摘要:
Regular readers will recall the deployment feature for Smart Device projects that was cut after Beta 1. It has now been confirmed that the "Deploy to My Computer" feature will not be supported for RTM... 阅读全文
摘要:
别人传给我了一个winform程序的demo,用vs2005打开后,报“路径的形式不合法。“,甚是疑惑,找了好久,找到了两个解决方法 1) 按f7打开窗体的后台文件,在空白处按回车,关闭所有文件,再重新打开窗体设计器就可以了。2)打开demo所在的文件夹,删除其下所有的*.pdb文件(调试符号数据库文件)。再重新打开demo就可以了。 作者:张荣华 出处:http://zh... 阅读全文
摘要:
项“obj\Debug\MyWork.FrmMain.resources”在“Resources”参数中指定了多次。“Resources”参数不支持重复项。用记事本打开 MyWork.csproj找到类似如下的字节段 EmbeddedResource 查看是否重复指向FrmMain,如果有,删除一项 阅读全文
摘要:
VS2008、C#3.0在WinForm开发中,我们通常不希望当窗体上点了某个按钮执行某个业务的时候,窗体就被卡死了,直到该业务执行完毕后才缓过来。一个最直接的方法便是使用多线程。多线程编程的方式在WinForm开发中必不可少。本文介绍在WinForm开发中如何使用多线程,以及在线程中如何通过Control.Invoke方法返回窗体主线程执行相关操作。-. WinForm多线程编程1. new T... 阅读全文
摘要:
首先,我也是经历了“认为回调函数比事件模型好”,“认为事件模型比回调函数好”,这两个阶段都走过才来说这样的话的。其实“回调函数”和“事件模型”可以作为架构方式的两个标志。这里,我就单单说说它们的优缺点吧。回调函数优点:1.没有内存泄漏问题2.书写简单,一个方法的回调函数数量和意义是固定的,不需要刻意查找需要的回调函数名称3.你无法对同一个内容加上两个回调函数,可以避免重复添加的问题4.回调函数的参数列表比较灵活,可以直接写,而且是固定的,写错了执行时会报错,方便排错5.回调函数以及它的参数是固定的,多了少了都不行,如果对方和你不同可以马上知道,方便协作。缺点1.回调函数不能保持引用,可能函数还 阅读全文
摘要:
using System;using System.Collections.Generic;using System.Text;using System.Runtime.InteropServices;namespace MyDelegate{ #region 委托实现回调函数 public delegate bool CallBack(int hwnd, int lParam); public ... 阅读全文
摘要:
一、基本步骤:1、创建一个方法作为线程的入口点;2、创建一个threadstart 或parameterizedthreadstart 委托,并把上一步定义方法的地址传给委托的构造函数;3、创建一个thread对象,把threadstart 或parameterizedthreadstart 委托作为构造函数的参数;4、创建任意初始化线程的特性(名称、优先级),5、调用thread.start方法... 阅读全文
摘要:
// Need this for the Thread.Sleep() call.using System.Threading;using System;namespace SyncDelegate{ public delegate int BinaryOp(int x, int y); class Program { static void Main(string[] args) { Conso... 阅读全文