using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;//引用Windows窗体类
namespace WindowsForms//命名空间名
{
class myForm : System.Windows.Forms.Form//声明一个类,继承于Form类
{
public myForm() { }//myForm默认的构造函数
static void Main() //程序入口
{
Application.Run(new myForm());//启动标准的应用程序的消息循环
}
}
}
控件
(1) 使用Visual Studio 2005开发环境添加控件
打开“工具栏”面板,讲目标控件拖入窗体中的合适位置即可。
(2) 使用代码添加控件
使用代码在窗体中添加一个按钮。.NET Framework提供了System.Windows.Forms.Button类供开发人员实例化标准按钮对象,因此创建按钮的过程既是由Button类实例化对象的过程。此时,窗体被看作是容器,包含按钮控件,故设计时需将按钮对象作为窗体类的一个成员。在实例化窗体对象的同时实例化按钮对象,即可完成添加按钮操作。
当窗体需要包含有多个不同种类的控件时,要要布置好各个控件的位置、大小及顺序关系。即对各个控件进行布局。可以使用以下四种属性来布局控件:
(1) Location,设置控件相对于窗体左上角的X与Y坐标;
(2) Size,设置控件本书的高度和宽度;
(3) Anchor,把控件附着在窗体的一个或多个边框上;
(4) Dock,设定控件相对于窗体某个边框的停靠方式。
Location及Size都使用绝对值来设定控件的位置与大小,当窗体大小改变时,控件的大小及位置无法随窗体的变化而自动等比例的变化,造成布局的混乱。为了解决这个问题,C#为控件提供了Dock属性。Dock属性的取值于DockStyle枚举类型成员
要使程序完成一定功能,需要响应控件的特定事件,如单击、移动等。在VS2005环境中,选中目标控件,双击,即可添加控件的click事件,并自动切换到该事件的响应函数中。
在代码中添加如下内容,即可完成响应控件事件工作:
//响应Click事件
button1.Click += new System.EventHandler ( button1_Click ) ;
同时,需要添加button1_Click方法,作为事件的响应函数。
标签控件(Label)是工具箱中最简单的控件,通常用来显示一些描述性文字。且显示内容通常在其声明周期内固定不变。Label控件的最常用属性为Text属性,用来指定在Label控件中显示的内容,可以通过设置Label控件的Color、Font、Style等属性来改变显示的效果。
(1) button控件
按钮控件(Button)允许用户通过单击来执行操作。当用户单击按钮时,即调用Click事件处理程序。可将代码放入Click事件处理程序来执行所选择的任意操作。
按钮上显示的文本由Text属性指定。如果文本超出按钮宽度,则换到下一行。但是,如果控件无法容纳文本的总体高度,则将剪裁文本。按钮(Button)控件还可以使用Image和ImageList属性显示图像
(2) 单选框和复选框控件
二者都允许用户从一系列的选项中选择,差别在于在一系列选项中单选框之间是“互斥”的,即只能有一个被选中;各个复选框选项之间相互无影响,即可有多个被选中。
.NET支持三种类型的按钮:按钮、单选框以及复选框,这三种按钮都继承于ButtonBase类。三种按钮分别对应于Button、CheckBox、RadioBox类,这些类包含于System.Windows.Forms命名空间中。
文本框控件负责为用户提供一个编辑数据的接口,也可以用来显示数据。.NET Frameword提供了TextBoxBase类支持文本框操作。该类为抽象类,由其派生的两个子类为:TextBox和RichTextBox分别对应于TextBox和RichTextBox控件
列表框控件
列表控件用于向用户提供多选择项的动态列别。C#提供了两种类型的列表控件:ListBox控件和ComboBox控件,二者都可以完成列表选择任务,但各有自己的属性。二者均由ListControl基类派生而来,ListControl类继承于Control类。其中, ListBox控件
列表框(ListBox)用于在滚动的窗口显示一系列的条目。如果列表框中的条目多于在一个窗口中所能容纳的数目,则自动添加滚动条
ComboBox列表框控件显示与一个ListBox组合的编辑字段,使用户可以从列表中选择或输入新文本。ComboBox的默认行为是显示一个编辑字段,该字段附带一个隐藏的下拉列表。DropDownStyle属性确定要显示的组合框的样式。可以输入一个值,该值指示允许以下情况:简单的下拉列表(始终显示列表)、下拉列表框(文本部分不可编辑,并且必须选择一个箭头才能查看下拉列表框)或默认下拉列表框(文本部分可编辑,并且用户必须按箭头键才能查看列表)。若要始终显示用户不能编辑的列表,建议使用ListBox控件。
在Windows应用程序中日期时间相关控件是必不可少的。相关控件包括定时器Timer控件、DateTimePicker控件以及MonthCalendar控件。
(1) Timer控件
定时器(Timer)控件用于以用户定义的事件间隔触发事件。Windows计时器是为单线程环境设计的,其中,UI线程用于执行处理。它要求用户代码有一个可用的UI消息泵,而且总是在同一个线程中操作,或者将调用封送到另一个线程。
当Enabled属性设置为true且Interval属性大于0时,将引发Tick事件,引发的时间间隔由Interval属性控制,该属性以毫秒为单位。若应用程序中实现了一个定时器,在程序执行结束时需要调用Dispose()方法,释放系统资源。
Form类位于System.Windows.Forms命名空间下,由Control类派生产生。该类具有非常丰富的成员。支持了C#窗体的绝大不部分操作。Form类与MDI应用程序相关的属性包括:
MDI应用程序创建步骤如下:
(1) 打开Visual Studio 2005开发环境,在菜单上选择“文件”|“新建项目”命令,显示“新建项目”对话框,创建基于C#的Windows应用程序项目。
(2) 在“解决方案资源管理器”中右击Form1.cs,在弹出菜单上选择“重命名”,然后将窗体的名称修改为MdiParentForm.cs,将窗体的Text属性设置为“MDI父窗体”,并将其IsMdiContainer属性设置为True。此时,Visual C#将客户区域变为暗灰色,并呈现下陷效果。这是MDI父窗口的标准外观。所有可见的子窗口都在该区域中显示。
(3) 在菜单上选择“项目”/“添加Windows窗体”,创建一个新的窗体。将该窗体命名为MdiChild1.cs,并将其Text属性设置为MdiChild1。
(4) 类似的,添加第三个窗体到项目中。将该窗体命名为MdiChild2.cs,并将其Text属性改为Child2。
(5) 在“解决方案资源管理器”中双击MdiParentForm.cs,在设计器中显示父窗口,双击窗体访问其缺省的Load事件。输入下列代码:
MdiChild1 CldForm1 = new MdiChild1 ();
CldForm1.MdiParent = this;
CldForm1.Show();
(6) 编译执行,即可看到MDI框架,如下图所示: