.Net平台Windows Forms程序设计简介

来源:互联网 发布:台湾有4g网络吗 编辑:程序博客网 时间:2024/04/30 08:14
 
.Net平台Windows Forms程序设计简介
 
引言:

  微软的.Net平台堪称为新一代的互联网平台。对于技巧开发人员来说,.Net平台的两大特性是非常出色的,首先是其所供给的公共语言运行时,也就是公用语言运行平台,另一方面就是庞大而全面的统一编程类。

   C#语言是微软公司针对.Net平台才推出来的一门新语言,作为.Net平台的第一语言,它几乎集中了所有关于软件开发和软件工程研讨的最新后果。其不但继承了C++Java等面向对象的强大功能特性,同时还是继承了VBDelphi等编程语言的可视化快速开发功能,其是当前第一个完全面向组件的语言。

   .Net平台中的程序设计重要分为以下四个方面:Web FormsWindows FormsWeb ServiceWindows Service,下面我向大家介绍Windows Forms程序的设计。

1、根基知识要点

C#语言:C#语言自C/C++演变而来。它是现代、简略、完全面向对象和类型安全的。如果您是C/C++程序员,学习曲线将会很平坦。许多C#语句直接借用您所喜爱的语言,包括表达式和操作符。C#是现代的编程语言。C#减少了C++的一些特性,不再有宏、模板和多重继承。使编程更便利的新功能是严厉的类型安全、版本掌握、垃圾收集(garbage collect)等等。所有的这些功能的目的都是瞄准了开发面向组件的软件。因此也把C#称为面向组件的语言。

类:类是一组具有雷同数据结构和雷同操作的对象的聚拢。类是对一系列具有雷同性质的对象的抽象,是对对象共同特性的描绘。比如每一辆汽车是一个对象的话,所有的汽车可以作为一个模板,我们就定义汽车这个类。C#是面向对象的,而且所有的C#代码都必需放在一个类中,不在有全局变量及全局名称等。

.Net类库:微软为.Net平台设计了非常庞大编程类。这些类包括从操作系统的底层到视窗界面,从数据库开发到Web服务等,涉及面非常广。这些类都是在公用语言运行时上,而且是管理、安全的代码。通过应用.Net供给的类库,你可非常轻松的开发.Net平台上的四大类程序:即Web FormsWindows FormsWeb ServiceWindows Service

Windows Forms程序:相似于Windows程序,是指能在微软公司操作系统平台如Windows 98,Windows NTWindows2000等平台上面运行的,有着非常漂亮脸蛋(如窗体、菜单、各种掌握等)的程序。Windows Forms是在.Net平台中初次涌现的概念,也称为Windows窗体,由于是.Net Windows Forms程序,因此你的视窗系统就必需首先安装.Net平台,能力运行。

事件:Windows系统中,我们对窗体的各种操作都将为引发一个事件,如按一个按钮引发一个点击(Click),在文本框中输入内容时将引发文本框的文本转变(Change)事件。事件产生时将要发送新闻,并由专门的新闻处置程序翻译并处置新闻。

Visual Studio .Net是微软.Net平台上的一个功能强大的、集成多种开发语言的软件开发工具。通过该开发工具,大多数.Net编程语言都可以实现RAD(快速开发)
2 Windows Forms中的几个根基概念

启动程序

   Windows Forms程序与一般应用程序不同的是其是通过非常漂亮的外观窗体及窗体上各种控件与用户交互。程序不是一步一步的实行,而是有一个新闻循环,依据用户的各种操作所引发的事件选择实行相应的功能。为了能管理、阐明Windows的各种新闻、用户键盘或鼠标输入并响应各种事件,.Net类库为我们供给了一个专门用于启动Windows程序的类:System.Windows.Forms.Application,通过应用Application类,我们可以非常容易就启动一个Windows Forms程序,并把有关新闻的阐明、键盘及鼠标的输入管理、各种事件的响应等都交由Application负责处置。

  另外,在Windows利用程序中,与一般的应用程序一样,程序的入口也一个类中的Main()方法(注意Main请求首字母大写),同样必需是static(静态)方法,否则程序将找不到入口点。

  下面,是C#中一个非常简略的启动Windows程序的例子:
static public void Main()

{
  Application.Run(new Form());

}

  另外,Windows Forms程序的收场也是由Application类来进行的。

窗体

   Windows操作系统最重要的成功得源于其漂亮的外观,即窗体。一般的Windows程序都有一个窗体,你可以把各种各样的控件(如标签、文本框、命令按钮等)放置在窗体上,组成一个非常人性的人机界面。在.Net Windows Forms中应用窗体只需从System.Windows.Forms.Form类或其派生类的创立一个对象即可。

  下面的代码,是C#中一个非常简略的继承Form(窗体)类的例子:
public class myForm:System.Windows.Forms

{

private System.Windows.Forms.Button button1;

public myForm()

{

}

}

  在自定义的窗体类myForm中增添了一个Button(按钮)对象。
 事件

  Windows Forms程序中,几乎用户的大多数都将操作都将产生Windows事件,如按一个按钮引发一个点击(Click),用户移动鼠标有相应鼠标移动的事件等;有一些事件是不是用户操作产生而是系统自动产生的,如数据库链接断开、时间达到某一时刻或是应用外设时未就绪等。

  Windows Forms中,每一个Windows控件有非常多的事件使其可以达到与用户交互,事件的监视及管理是由前面所说Application类负责的。在产生一个事件时一般经引发一系列操作,如点击刷新按钮应用程序重新从读取数据库中的数据、点击窗体上的关闭图标将关闭窗口或退出程序等。程序员就是通过书写事件的响应方法(即事件所引发的操作)来达到对程序的掌握及交互。

  .Net中,事件的声明是通过event(事件)要害字来声明的,事件是一个类的成员之一。

   .Net中,事件的响应及处置是通过一个新的数据类型delegate(代表)来处置的,delegate(代表)非常相似于C/C++的函数指针,但不同的是, delegate(代表)是安全的、受管理的。

  如下面分辨用三种语言声明一个控件Click事件的代码:
public event EventHandler Click; [C#]

Public Event Click As EventHandler [Visual Basic]

public: __event EventHandler* Click; [C++]

  在上面的代码中,EventHandler是一个代表类型,其在.Net类库中的声明如下:
public delegate void EventHandler(object sender,EventArgs e); [C#]
Public Delegate Sub EventHandler(ByVal sender As Object,ByVal e As EventArgs) [Visual Basic]
public __gc __delegate void EventHandler(Object* sender,EventArgs* e); [C++]

事件响应方法

  由于事件是阐明及管理是由Application对象进行的,程序员不需要知道用户何时响应事件或者是响应了什么事件,只需要为事件添加响应方法即可。通过应用delegate(代表),你可以应用“+=”(加等于)操作符非常容易地为.Net类中的一个事件添加一个甚至多个响应方法,还可以通过非常简略的“-=”(减等于)操作符撤消这些响应方法。如下面,我们为一个按钮的Click事件添加响应方法的代码:
button1.Click += new System.EventHandler(MyMethod);

  其中,MyMethod函数的定义如下:
void MyMethod(object sender, System.EventArgs e);

  这样当用户点击按钮或者是其它方法引发其Click事件时,MyMethod函数中的代码将实行。
属性

  我们知道,在面向对象的程序设计中,一个类有很多成员,这些成员包括域(Fields)、结构函数、析构函数、方法(Methods)、事件及属性(Properties)等。这些成员有的表现对象的一个特性,也有的应用对象实行一个操作。

   .Net类中属性(Properties)非常重要,其重要用于表现对象的特性,如一个窗体的大小、位置、是否可以最大化、是否显示掌握栏及窗体的背景色彩等等。属性(Properties)对程序员是公开的,你可通过简略的“=”(赋值号)就可走访属性。在.Net类中,有的属性只能读、有的只能写,当然大多数属性是可以读写的,这重要取决于类中对属性的定义。如下面的代码在Form(窗体)类中定义了一个掌握栏是否显示的属性:
public bool ControlBox {get; set;} [C#]

Public Property ControlBox As Boolean[Visual Basic]

  有了上面的定义,要使一个窗体不显示掌握栏,C#只需要应用下面的简略语句即可:
form1.ControlBox=false;

  Windows Forms程序设计中,我们都是通过设置大宗的属性值,形成一个非常漂亮的窗体的。另外,有了属性,也增添了语言对RAD(快速开发)的很好支撑。

控件:

   Windows Forms程序设计中,仅仅有窗体往往是不够的,还必需有通过众多的控件来充实窗体的内容,达到友爱、人性化的人机操作界面设计。这此,.Net类库为我们准备了几乎Windows Forms中会要用到的各种元素类,一般情况下,我们把这些类或其实例称为控件,窗体就是通过各种各样的控件充实起来的。

  其实,控件这一概念是在RAD(快速开发)工具中应用起来的,这些开发工具把很多常用的类及相关内容非常形象化的放在工具栏或面板中,你只需要通过简略的鼠标拖放等操作就可认为程序添加各种各样的控件并设置控件的各种属性,由开发工具自动生成相应的代码。通过应用控件,使你的整个开发变得更加简略了。

  .Net类库中,根基上所有的控件都是由System.Windows.Forms.Control类继承而来的,该类重要供给非常根基的、让类能实现形象化显示、处置各种键盘及鼠标的输入并响应各种事件等。

  由于大多数控件都是从Control类中继承,而该类中有一个属性即Controls表现当前控件的所有子控件聚拢。因此,自己写代码把一个控件添加到窗体中非常简略,只需要把所要添加的控件对象参加当前窗体的Controls属性聚拢中即可,如下面的C#代码:
form1.Controls.Add(new Button());

  将在窗体form1上添加一个按钮控件。

  另外,你还可以定义自己的控件,重要通过System.Windows.Forms.UserControl类(该类是Control的派生类),当然应用Control类一样可以。
3 Windows Forms程序设计简略步骤

  通过前面的介绍,大家可能已经大概知道一个Windows Forms的设计过程了。一般情况下,设计开发一个Windows Forms程序的步骤如下:

第一步:程序需求剖析

  作为一个成熟的程序员,都会对程序的需求作比拟过细详细的剖析,并不断的与相关人员交流沟通,最终得到一个比拟可行的解决盘算。需求剖析在程序设计中是必不可少的,在此就不过多讲述。

第二步:设计你的类及对象

  面向对象程序设计中最为要害的部份就是对程序处置问题的对象化。因此,在书写程序代码前必需花更多的时间在程序所解决问题的对象化及类设计上。并解决问题的各种事务逻辑及流程。

  一般情况下,面向对象的设计分为两个阶段,即高层设计和低层设计。

  高层设计阶段开发系统的结构,结构待开发软件的总体模型。在这个阶段,标识出在具体的盘算机环境中进行问题求解所需要的概念,增添了一批需要的类,这些类包括那些使得软件系统能够与外部世界进行交互的类。并输出合适利用软件请求的类、类之间的关系及利用子系统的视图规格阐明。

  低层设计集中于类的详细设计阶段。类设计的目的是形成单一概念的模型,一个独立的类表现一个概念,以及设计的部件应该是可复用的和可靠的。

  类的设计过程中需要采取信息隐藏、高内聚低耦合等设计原则。在面向对象的技巧中,利用即存类的复用是一个很大的优点。

  Windows Forms的类设计过程中,必定要充足应用各种.Net已存在类的复用,并在其基本上增添自己类所需的部件及功能等。
第三步:界面设计(设计窗体及控件)

  由于Windows Forms程序重要讲究人机界面的美观性及友爱性。因此,除了书写效力非常高的代码及算法实现程序功能外,Windows Forms中还将把界面的设计作为一个重点。

  界面设计重要是通过设置控件及窗体的各种位置、大小、形状、色彩等外观属性而实现。当然,要想实现非常友爱的用户界面,完全通过在记事本等软件进行代码的录入及凭感到调处窗体及各种控件的大小、位置及外观等是很难完成的(仅管你通过记事本也能写比拟大的程序),我们必需借助各种各样的开发工具,特别的快速开发(RAD)工具的应用。

  当前,有很多可以编写.Net程序的RAD工具软件,其中最为完善,功能最为强大,非微软的Visual Studio .Net莫属。该软件是一个集多种语言为一体的快速开发(RAD)工具,供给强大的软件工程管理、盘算机资源管理、智能代码感知技巧及强大的程序试调等功能。应用Visual Studio .Net开发你的各种.Net利用程序,一切都将会变得事半功倍,而且你会发觉编程变得是那么轻松的事儿。

  通过应用Visual Studio .Net,你设计窗体及程序界面变得很简略了。你只需要单的鼠标拖放、位置调处等操作就可以完成程序的大多数设计。Visual Studio .Net其自动生成的代码模板及规范化的注释,还可以通过非常简略的双击控件为其添加各种事件响应函数等。另外应用Visual Studio .Net,还能很好支撑.Net的多语言交叉继承等功能。

第四步:为窗体及控件添加各类事件响应方法

  在窗体及界面设计完成后,余下的事就是给程序添加具体的源代码了。由于,WindowsForms根基上是通过由引发事件到响应事件再到实行事件这样一个过程来达到与用户的交互的,因此,我们所写的源代码大多数都是控件或窗体的各种事件响应方法,同加上一些公用的函数等,有效组合到一起就可以使你的程序按你的请求办事了。

  如果你应用Visual Studio .Net,那么,添加事件将是非常简略的,大多数时候你只需要双击控件就可认为控件添加常用的响应方法。其它的事件响应方法也可以通过其智能代码感知技巧的资助下很快地参加到程序中。

第五步:启动程序

  一切就绪过后,现在可以写启动程序的代码了。当然,如果你应用Visual Studio .Net,可能关于启动程序的代码它都为了准备好了。前面介绍过,启动Windows Forms程序只需要通过Application类即可,该类是一个封装类,大多数的方法都是表态的,不能创立该类的实例即可以应用。应用Application一般情况下需要一个窗体(不是绝对需要),而全面你所设计的窗体类此时可用上了,直接结构你窗体类的一个实例即可。而Application类将会为你做很多事,包括内存及资源分配,各种底层组件的调用等。

4 一个完全而简略Windows Forms程序

  下面我们将列出一个用C#写的完全整而非常简略的Windows Forms程序,该程序通过继承定义了一个自己的窗体类HelloWorld。启动程序将看到程序上有一个按钮控件,点击按钮控件将显示一个弹出菜单。

  程序几乎包括了前面所讲的各种要点如窗体、控件、控件属性、事件、事件响应等。代码中包括了具体的注释阐明,请大家仔细领会!
   ////////HelloWorld.cs源程序
using System;//引入System命名空间,其包括了.Net中大多数的根基数据类型,如int,string

using System.Drawing;//
引入System.Drawing命名空间,其中包括了Windows Forms中的各种根基的图像操作要素

using System.Windows.Forms;//
引入System.Windows.Forms命名空间,其定义了Windows Forms程序中所涉及到的大部份类,如窗体、控件、Application类等

public class HelloWorld:System.Windows.Forms.Form //
通过继承Form而定义一个HelloWorld的窗体类,该类具有Form类的所有成员及特性

{

private System.Windows.Forms.Button button1;//
定义HelloWorld类的一个成员(一个按钮)

public HelloWorld()//HelloWorld
类的结构函数

{

button1=new Button();//
生成一个Button实例,也可以说成初始化HelloWorld类的button1成员

button1.Text=TestButton;//
设置按钮button1Text属性值

button1.Location=new Point(100,100);//
设置按钮button1Location

button1.Click+=new System.EventHandler(MyMethod);//
为按钮button1Click事件添加响应方法

this.Text=Hello World!;//
设置自定义窗体的文本(Text)属性,该属性将成为窗体的标题

this.Controls.Add(button1);//
把按钮窗体添加到窗体中,使窗体可以显示。

}

public static void Main()//
程序入口

{

Application.Run(new HelloWorld());//
生成HelloWorld实例并通过Application.Run()静态方法启动程序,

}

private void MyMethod(object sender,System.EventArgs e)//
定义事件响应函数,请注意参数的应用,其与System.EventHandler代表中的参数要一致

{

MessageBox.Show(You have clicked the Button,Information);//
应用弹出框弹出提示信息。

}

}


  编译该程序的方法,直接把代码拷到记事本中,保存为HelloWorld.cs文件,然后在命令行输入csc HelloWorld.cs即可编译(我们假设HelloWorld.cs在当前目录上)。编译完成后将生成一个名为HelloWorld.exe的文件,些时直接在命令行输入HelloWorld程序即可运行程序。
原创粉丝点击