05 2011 档案
摘要:以前的一段时间,看到好多的网友在搜索WinForm程序中DataGridView控件怎样打印的问题,虽然也有很多的朋友都给提供了相当好的解决方法,但可能是因为本身的基础知识不是牢固或者是网友提供的解决方法呢都仅仅是给提供了这个打印类并没有讲到具体的怎样在程序中去应用操作的整个流程,因此本文章将会仔细的讲解具体的在程序中怎样用到这个打印类(这个打印类是外国人写的,虽然中国也有好的打印方法或是相关的自定义的打印控件及参考资料,但我是用这个打印类测试的程序所以就讲这个打印类)。为了好讲解呢先把效果图给贴下:点击打印按钮的时候会弹出一个预览打印数据的界面,选择打印后就可以打印了。下面具体来讲解这样操作
阅读全文
摘要:本篇文章主要讲解如何用IrisSkin2.dll来动态的对WinForm界面进行更换皮肤操作,在操作之前,应该确保有IrisSkin2.dll和一些稍微漂亮些的皮肤文件(以.ssk结尾),把它们放置在你自认为很合适的位置,为了演示用我把IrisSkin2.dll和皮肤文件放置在了应用程序的Debug下面,所有的皮肤文件放置在了以skin为命名的文件夹下如下图所示skin文件夹下的皮肤文件和我自己定义的INI配置文件(此文件将会在后面讲到,关于INI配置文件的相关信息在我以上的文章中已提到过,在此不再详细讲解关于操作INI文件的文章链接地址是http://www.cnblogs.com/wang
阅读全文
摘要:如果一个MDI窗体中有多个子窗体同时打开,假如不对其排列顺序进行调整,那么界面会非常的混乱,而且不容易浏览。那么如何解决这个问题呢?我们可以通过使用带有MdiLayout枚举的LayoutMdi方法来排列多文档界面父窗体中的子窗体。语法:public void LayoutMdi (MdiLayout value)value:是MdiLayout枚举值之一,用来定义MDI子窗体的布局。MdiLayout枚举用于指定MDI父窗体中子窗体的布局。语法:public enum MdiLayoutMdiLayout枚举的枚举成员及说明如表1所示。表1MdiLayout枚举成员下面通过一个实例演示如何使
阅读全文
摘要:PageSetupDialog控件用于设置页面详细信息以便打印。允许用户设置边框和边距调整量、页眉和页脚以及纵向或横向打印。在介绍如何通过PageSetupDialog控件设置页之前,要介绍该控件的一些属性,通过这些属性可以方便的对页面进行设置。PageSetupDialog控件的常见属性及说明如表1所示。表1 PageSetupDialog控件的常用属性及说明属性说明Document获取页面设置的PrintDocument类对象AllowMargins是否启用对话框的边距部分AllowOrientation是否启用对话框的方向部分(横向对纵向)AllowPaper是否启用对话框的纸张部分(纸
阅读全文
摘要:在应用程序中使用多个线程的一个好处是每个线程都可以异步执行。对于Windows应用程序,耗时的任务可以在后台执行,而使应用程序窗口和控件保持响应。对于服务器应用程序,多线程处理提供了用不同线程处理每个传入请求的能力。否则,在完全满足前一个请求之前,将无法处理每个新请求。然而,线程的异步性意味着必须协调对资源(如文件句柄、网络连接和内存)的访问。否则,两个或更多的线程可能在同一时间访问相同的资源,而每个线程都不知道其他线程的操作,结果将产生不可预知的数据损坏。线程同步是指并发线程高效、有序的访问共享资源所采用的技术,所谓同步,是指某一时刻只有一个线程可以访问资源,只有当资源所有者主自动放弃了代码
阅读全文
摘要:创建完一个线程并启动之后,还可以挂起、恢复、休眠或终止它,本节主要对线程的挂起与恢复进行讲解。线程的挂起与恢复分别可以通过调用Thread类中的Suspend方法和Resume方法实现,下面对这两个方法进行详细介绍。1.Suspend方法该方法用来挂起线程,如果线程已挂起,则不起作用。语法如下。 public void Suspend ()说明:调用Suspend方法挂起线程时,.NET允许要挂起的线程再执行几个指令,目的是为了到达.NET认为线程可以安全挂起的状态。2.Resume方法该方法用来继续已挂起的线程,语法如下。public void Resume ()说明:通过Resume方法来
阅读全文
摘要:创建一个线程非常简单,只需将其声明并为其提供线程起始点处的方法委托即可。创建新的线程时,需要使用Thread类,Thread类具有接受一个ThreadStart委托或ParameterizedThreadStart委托的构造函数,该委托包装了调用Start方法时由新线程调用的方法。创建了Thread类的对象之后,线程对象已存在并已配置,但并未创建实际的线程,这时,只有在调用Start方法后,才会创建实际的线程。Start方法用来使线程被安排进行执行,它有两种重载形式,下面分别介绍。(1)导致操作系统将当前实例的状态更改为ThreadState.Running,语法如下。public void
阅读全文
摘要:Thread类位于System.Threading命名空间下,System.Threading命名空间提供一些使得可以进行多线程编程的类和接口。除同步线程活动和访问数据的类(Mutex、Monitor、Interlocked和AutoResetEvent 等)外,该命名空间还包含一个ThreadPool类(它允许用户使用系统提供的线程池)和一个Timer类(它在线程池线程上执行回调方法)。Thread类主要用于创建并控制线程、设置线程优先级并获取其状态。一个进程可以创建一个或多个线程以执行与该进程关联的部分程序代码,线程执行的程序代码由ThreadStart委托或ParameterizedTh
阅读全文

浙公网安备 33010602011771号