源动力

程序在于积累和思考
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2012年3月14日

摘要: 首先设置下两个控件:设置serviceProcessInstaller1控件的Account属性为“LocalSystem”设置serviceInstaller1控件的StartType属性为"Automatic"然后设置ProjectInstaller(默认名)的事件AfterInstall和BeforeUninstall,分别用于在制作安装程序时自动启动和卸载时自动关闭。详细代码如下:public partial class ProjectInstaller : Installer { private Process p = new Process(); public 阅读全文

posted @ 2012-03-14 21:27 老K的幸福生活 阅读(1085) 评论(0) 推荐(0) 编辑

2012年3月6日

摘要: IP地址分类 最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。Internet委员会定义了5种IP地址类型以适合不同容量的网络,即A类~E类。 其中A、B、C3类(如下表格)由InternetNIC在全球范围内统一分配,D、E类为特殊地址。网络类别最大网络数第一个可用的网络号最后一个可用的网络号每个网络中的最大主机数A126112616777214B16382128.1191.25565534C20971.. 阅读全文

posted @ 2012-03-06 17:31 老K的幸福生活 阅读(451) 评论(0) 推荐(0) 编辑

摘要: 生成操作:嵌入的资源;复制到输出目录:不复制;//获取“嵌入的资源”数据Image.FromStream(Assembly.GetExecutingAssembly().GetManifestResourceStream(@"TestCustomForm.Res.button.btndown.bmp"));其中:TestCustomForm为项目名称,Res为项目下的文件夹,button为Res的子文件夹,btndown.bmp是文件名称。//获取项目中“资源文件”的数据Assembly asm = Assembly.GetExecutingAssembly();Resou 阅读全文

posted @ 2012-03-06 13:39 老K的幸福生活 阅读(2290) 评论(0) 推荐(0) 编辑

2012年3月1日

摘要: 报表页眉:报表的最开始显示,并且只显示一次。页眉:在“报表页眉”的后面,每一页在页顶都会显示一次。详细资料:位于“页眉”和“页脚”之间的数据。在“详细资料”节中插入节可以增加详细资料节,这个功能能够在插入子报表时根据高度自适应。报表页脚:报表的最末尾显示,并且只显示一次,在最后一页详细资料节的后面,不一定在页底。页脚:在“详细资料”节的后面,每一页在页底都会显示一次。组页眉:在每一组的最顶端显示,在组页眉中插入节则可以插入组页眉的附加信息。组页脚:在每一组的最底端显示,在组页脚中插入节则可以插入组页脚的附加信息。可以设置节的属性“延伸到后续节”,让子报表的数据扩展到其他节,这个功能在设计左右格 阅读全文

posted @ 2012-03-01 16:35 老K的幸福生活 阅读(1349) 评论(0) 推荐(0) 编辑

摘要: 第一步:创建强类型数据集,添加数据表,一般情况下,设置各个字段类型为字符串,对于图片字段,数据类型为System.Byte[],指定各个数据表之间的关系。如果父表为SickInfo,子表为ChemProParamSet和UriProParamSet。选择要创建的内容为“仅关系”。第二步:创建空白报表,并选择数据源,并设置或者确认表关系的链接,如下图所示:第三步:向报表中添加子报表,并“设置对象格式”修改子报表属性:“可以扩大”、去掉边框、注意一定要勾选“打开时重新导入子报表”。创建组字段,用SickInfo.SickSampleID,选项中勾选设置“将组放在同一页上”。设置子报表和报表的关联。 阅读全文

posted @ 2012-03-01 16:30 老K的幸福生活 阅读(838) 评论(0) 推荐(0) 编辑

2012年2月23日

摘要: 水晶报表查看器CrystalReportViewer的ReportSource属性是object,目前对其赋值一般采用两种方式。第一种是采用返回ReportClass对象实例的方式,第二种是采用ReportDocument返回报表文件的方式。他们各有优劣。采用ReportClass oRpt = new ReportClass();的方式最终的发布方式可以不用报表文件(即后缀为*.rpt)的方式,这种方式的特定是加载很快,但是如果要修改报表文件的话就要打开工程修改编译后才能起作用。而第二种方式ReportDocument oRpt = new ReportDocument();则是根据路... 阅读全文

posted @ 2012-02-23 16:52 老K的幸福生活 阅读(1388) 评论(0) 推荐(0) 编辑

摘要: .Net中的线程,可以分为后台线程和前台线程。后台线程与前台线程并没有本质的区别,它们之间唯一的区别就是:应用程序必须运行完所有的前台线程才可以退出;而对于后台线程,应用程序则可以不考虑其是否已经运行完毕而直接退出,所有的后台线程在应用程序退出时都会自动结束。其实,说白了就是当前台线程都结束了的时候,整个程序也就结束了,即使还有后台线程正在运行,此时,所有剩余的后台线程都会被停止且不会完成.但是,只要还有一个前台线程没有结束,那么它将阻止程序结束.这就是为什么有些设计不够完美的WinForm程序,在某种特定的情况下,即使所有的窗口都关闭了,但是在任务管理器的管理列表里仍然可以找到该程序的进程, 阅读全文

posted @ 2012-02-23 08:39 老K的幸福生活 阅读(1445) 评论(0) 推荐(2) 编辑

2012年2月17日

摘要: using System;using System.Collections.Generic;using System.Text;using System.Net;using System.IO;using System.Threading;namespace TestAsyncCallBack1{ // RequestState 类用于通过异步调用传递数据 public class RequestState { const int BUFFER_SIZE = 1024; public StringBuilder RequestData; public byte[] BufferRead; pu 阅读全文

posted @ 2012-02-17 16:22 老K的幸福生活 阅读(432) 评论(0) 推荐(0) 编辑

2012年2月16日

摘要: Facade模式,即外观模式,是一种结构型模式,它主要解决的问题是:组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战。举一个例子:现在有一辆汽车,我们(客户程序)要启动它,那我们就要发动引擎(子系统1),使四个车轮(子系统2)转动。但是实际中我们并不需要用手推动车轮使其转动,我们踩下油门,此时汽车再根据一些其他的操作使车轮转动。油门就好比系统给我们留下的接口,不论汽车是以何种方式转动车轮,车轮变化成什么牌子的,我们要开走汽车所要做的还是踩下油门。GoF《设计模式》中说道:为子系统中的一组接口提供一个一致的界面,Facade模式 阅读全文

posted @ 2012-02-16 11:05 老K的幸福生活 阅读(308) 评论(0) 推荐(0) 编辑

摘要: 在.Net多线程编程中,AutoResetEvent和ManualResetEvent这两个类经常用到,用于线程之间的通信, 他们的用法很类似,但也有区别。Set方法将信号置为发送状态,Reset方法将信号置为不发送状态;WaitOne方法在无信号状态下,可以使当前线程挂起;注意这里说的是当前线程。可以通过构造函数的参数值来决定其初始状态,true表示畅通无阻的状态(signaled),线程不能阻塞,即使调用WaitOne也不能阻塞;false表示是可阻塞的状态(nonsignaled),可以调用WaitOne方法来阻塞,WaitOne方法被调用后,当前线程(即调用这个方法的线程)暂停运行(可 阅读全文

posted @ 2012-02-16 10:26 老K的幸福生活 阅读(491) 评论(0) 推荐(1) 编辑