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

引言:

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

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

  .Net平台中的程序设计主要分为以下四个方面:Web Forms、Windows Forms、Web Service及Windows 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 Forms、Windows Forms、Web Service及Windows Service。

  Windows Forms程序:类似于Windows程序,是指能在微软公司操作系统平台如Windows 98,Windows NT及Windows2000等平台上面运行的,有着非常漂亮脸蛋(如窗体、菜单、各种控制等)的程序。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函数中的代码将执行。

时间: 2024-12-28 11:11:33

.Net平台Windows Forms程序设计简介-1的相关文章

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

属性 我们知道,在面向对象的程序设计中,一个类有很多成员,这些成员包括域(Fields).构造函数.析构函数.方法(Methods).事件及属性(Properties)等.这些成员有的表示对象的一个特征,也有的使用对象执行一个操作. .Net类中属性(Properties)非常重要,其主要用于表示对象的特征,如一个窗体的大小.位置.是否可以最大化.是否显示控制栏及窗体的背景色彩等等.属性(Properties)对程序员是公开的,你可通过简单的"="(赋值号)就可访问属性.在.Net类中

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

引言: 微软的.Net平台堪称为新一代的互联网平台.对于技术开发人员来说,.Net平台的两大特性是非常卓越的,首先是其所提供的公共语言运行时,也就是公用语言运行平台,另一方面就是庞大而全面的统一编程类. C#语言是微软公司针对.Net平台才推出来的一门新语言,作为.Net平台的第一语言,它几乎集中了所有关于软件开发和软件工程研究的最新成果.其不但继承了C++.Java等面向对象的强大功能特性,同时还是继承了VB.Delphi等编程语言的可视化快速开发功能,其是当前第一个完全面向组件的语言. .N

求C# Windows Forms 程序设计(清华版)书的源程序.

问题描述 找了好久都找不到,求各位大大发我一份邮箱shizhengyy@163.com 解决方案 解决方案二:有人找到了也发我一份吧wwgkc@126.com

Windows Forms菜单设计全攻略

[前言:] C#不但继承了C++.Java等面向对象的强大功能特性,同时还是继承了VB.Delphi等编程语言的可视化快速开发功能,也称其为当前第一个完全面向组件的语言.虽然微软将把C#语言作为在WEB上开发一种主流工具来推广,但其在传统客户/服务器模式的程序设计中,特别是在微软.Net平台系统下,C#其强大,易用的特性将会成为Windows应用软件开发人员首选工具. 而在Windows程序设计中,菜单作为用户与程序交互的首选工具,那么在.Net中C#又是如何快速的构造Windows Forms

Windows Forms中的数据绑定(一)

window|数据 Windows Forms中的数据绑定 作者:刘志波   摘要:这篇文章是讲解在Windows Forms中如何使用ADO.NET简单的将Form和包含任何结构的数据绑定在一起.通过简单或者复杂的数据绑定,把Form的control的属性绑定到指定的数据上. 目标: 学习Microsoft.NET平台中数据绑定的基础知识 学习怎样生成一个简单的数据绑定form 学习如何往你生成的数据绑定form中添加ComboBox和ListBox Learn how to base

[推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下)

原文:[推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下) [推荐]ORACLE PL/SQL编程详解之一: PL/SQL 程序设计简介(千里之行,始于足下) --通过知识共享树立个人品牌. 继上六篇:        [顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功)        [推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆)        [推荐]ORA

(C#)安全、简单的Windows Forms多线程编程1

window|安全|编程|多线程 说实在的,我最初打算做的事情和本文主要讨论的内容毫不相关.那时,我第一次发现我需要在.NET中计算一个圆的面积,当然,首先需要一个pi(π)的精确值.System.Math.PI用起来倒是很方便,但它只提供了20位的精度,我不禁为计算的精度而担心(其实21位的就可以绝对令我感到舒服).所以和其他任何称职的程序员一样,我忘记了真正需要解决的问题,而埋头写出了一个自己喜欢的可以算出任意位小数的π值的程序.最终的结果如图1.   图1. 计算Pi值的程序 耗时操作(L

Windows Forms中的数据绑定(二)

window|数据 运行我们运行这个程序来看看是否国家可以正常的显示了.1. 按下F5来运行程序.2. 点击Countries下拉框来看看是否国家数据已经可以显示了.如果正常的话,你就可以看到如下图8所示的程序: 图8.使用ComboBox来显示小数据集可以提高性能带参数的查询来显示数据现在已经可以看到ComboBox中的国家数据了,接着我们就来做选择ComboBox中的一个国家,在DataGrid中只显示这个国家的客户资料.我们按照这些步骤来做:1. 把form的load事件中读取DataGr

C# 2.0 匿名方法与 Windows Forms 异步调用

window|异步 C# 2.0 匿名方法大大简化了 Windows Forms 异步调用的实现,我们再也不用手工定义异步委托或者包装类了.例如,在下面的代码示例中,Form1 有一个按钮控件和一个列表控件,在按钮控件的单击事件里,我们新建一个线程,在这个线程中向列表控件添加 10 个项目: public class Form1 : System.Windows.Forms.Form{ private System.Windows.Forms.ListBox listBox1; private