visual c#是微软公司.ner framework框架中的一个重要组成部分,也是微软公司极力推荐的新一代程序开发语言。winform是.net开发平台中对windows form的一种称谓。.net 为开发winform的应用程序提供了丰富的class library(类库)。这些winfrom 类库支持rad(快速应用程序开发),这些类库被封装在一个名称空间之中,这个名称空间就是system.windows.forms。在此名称空间中定义了许多类,在开发基于.net的gui应用程序的时候,就是通过继承和扩展这些类才使得我们的程序有着多样的用户界面。本文就试图通过一个最基本的类–form,来具体说明一下用visual c#开发winform程序的具体过程。
一.程序开发和运行环境及概括介绍
本问的所有调试程序都基于微软视窗2000专业版本和.net framework beta 2版。
二.第一个winform
如果你的机器已经达到了我们程序要求的运行环境,那就打开一个文本编辑器把下面的
程序代码拷贝到编辑器里面,然后另存为first.cs文件。通过下面的编译语句:
csc /t:winexe /r:system.dll first.cs
编译完成后。运行程序就可以看到以下界面:
程序源代码:first.cs
using system ;
//导入 winforms 名称空间
using system.windows.forms ;
//class form1 继承并扩展 system.windows.forms名称空间中class form
public class form1 : form
{
public static void main()
{
//运行程序
application.run(new form1());
}
}
小结:
1).首选要使用"using system.windows.forms"语句导入winform的名称空间
2).声明form1 类,此类是继承、扩展了using system.windows.forms 名称空间中的form 类
3)."application"类,此类也被定义在using system.windows.forms名称空间中,由于此类封闭的,所有我们不能继承。"application"类主要作用是运行和退出windows的应用程序,还可以处理windows的消息。调用"application"类的"run"方法表明将要开始运行应用程序。
三.做一个透明的winform
当我第一次在视窗2000中看到透明的窗体,就想做出这样一个窗体应该是非常难的。肯定要调用很多的api函数。当接触了.net以后,才发现用visualc#做出一个透明的窗体是多么简单,只要设定一个值就可以了。下面还是让我们来看看通过以下代码生成的透明窗体到底是什么样。
透明窗体的源代码:second.cs
using system ;
using system.windows.forms ;
using system.drawing ;
public class form2 : form
{
public static void main( )
{
application.run( new form2( ) );
}
public form2( )
{
this.location = new system.drawing.point( 100 , 100 ) ;
this.cursor = system.windows.forms.cursors.hand;
// 定义在窗体上,光标显示为手形
this.text = "透明的winform窗体!";
// 定义窗体的标题名称
this.startposition = system.windows.forms.formstartposition.centerscreen;
// 定义窗体的开始显示位置是屏幕的中间
this.formborderstyle = system.windows.forms.formborderstyle.fixed3d;
// 窗体的边界是fixed3d类型
this.forecolor = system.drawing.systemcolors.desktop;
//以桌面的前景色作为窗体的前景色
this.font = new system.drawing.font ( "宋体", 9 ) ;
// 定义字体类型,大小
this.backcolor = system.drawing.color.blue;
// 定义背景色为蓝色
this.clientsize = new system.drawing.size( 440 , 170 ) ;
// 设置窗体的大小
// opacity属性设立窗体的透明程度,只对于视窗2000有效
this.opacity = 0.60 ;
}
}
小结:
以上的代码其实和第一个例子的代码有很多相似,只是在form2 class中多定义了一些属性。
1)."this"关键字,我想大家都注意到了这个关键字,那么到底该如何理解他。举例如下:当我在自我介绍的时候(其实就是在定义我的属性),我会说"我的名字叫xx","我的年龄是xx","我的邮箱是xx"……你可能注意到"我的"这二个字,他就是指我本人–王天。同样的道理在程序设计中,"this"关键字就是指向一个对象的实例。所有在上面代码中"this.font"、"this.text"就是在设定当前或者正在运行的form2实例的属性。
2).再看看上面的代码,在程序中又导入了一名称空间–system.drawing。通过这个名称空间定义的类,就可以更好的设计对象,处理颜色和大小。
3).下面通过下表来具体说明一下在上面程序中设立的属性的具体含义。
属性 描述
location 初始化winform的位置,就是当应用程序运行的时候,显示winfrom的固定位置
cursor 当光标在winform上面的时候显示的光标状态
text 设定winform的标题
startposition 这个属性有点类似于"location"属性,"location"属性定义的是winform的绝对位置,而本属性定义的是winform的相对属性。本属性的值定义为"centerscreen"、"manual"、"windoowsdefaultlocation"、"windowsdefaultbounds"、"centerparent"
formborderstyle 定义窗体的边界的样式。通常设定为,"fixedsingle"、"sizable"、"fixeddialog"、"fixedtoolwindow"、"sizabletoolwindow"
forecolor 定义窗体的前景色彩
font 定义放在winform上的字体的类型和大小
backcolor 定义窗体的背景色彩
clientsize 定义winform的大小
opacity 这个属性是定义winform的透明程度,并且这个属性只能用在视窗2000。属性的区值0-1,代表从完全透明到不透明。
四.做一个带一个组件的winform
本例子主要是介绍如何在winform中加入一个组件。如果你想在窗体中加入任何组件,首先,你必须要初始化这个组件(见下面程序中初始化label一样)。并且使用"controls.add"方法加入到窗体中,以下是程序运行的界面和源代码。
源程序:three.cs
using system ;
using system.windows.forms ;
using system.drawing ;
public class form3 : form
{
//定义一个标签
private label label1 ;
public static void main( )
{
application.run( new form3( ) ) ;
}
// 构造
public form3( )
{
// 建立标签并且初始化
this.label1 = new system.windows.forms.label( ) ;
//先继承一个label 类
label1.location = new system.drawing.point( 24 , 16 ) ;
//设定 label的显示位置
label1.text = "这是一个winform中的标签";
label1.size = new system.drawing.size ( 200, 50 );
//设定标签的大小
label1.tabindex = 0 ;
label1.textalign = system.drawing.contentalignment.middlecenter;
// 设定标签的对齐方式
this.text = "在winform中加入一个标签!";
this.startposition = system.windows.forms.formstartposition.centerparent;
this.autoscalebasesize = new system.drawing.size( 8 , 16 ) ;
this.formborderstyle = system.windows.forms.formborderstyle.fixed3d;
// 设定窗体的边界类型
this.forecolor = system.drawing.systemcolors.desktop;
this.font = new system.drawing.font ("宋体", 10 , system.drawing.fontstyle.bold ) ;
// 设定字体、大小就字体的式样
this.sizegripstyle = system.windows.forms.sizegripstyle.hide;
this.backcolor = system.drawing.color.blue;
// 设定背景色
this.clientsize = new system.drawing.size( 250 , 250 ) ;
//把标签加到窗体中
this.controls.add ( this.label1 ) ;
}
}
五.总结
以上是对用visual c#开发winform应用程序进行了着重的介绍,由于在.net framework sdk中的system.windows.froms名称空间中封装了许多关于界面设计的class(类)。本文只能通过介绍一个基本的类–form来了解一下visual c#的强大功能和.net class library(类库)丰富的开发资源。通过本文也可以看出,要想充分利用visual c#的强大功能,就必须了解并掌握.net class library。也只有掌握了.net class library,你所开发的.net程序功能才会强大,生命力才更强。
