您好,欢迎来到年旅网。
搜索
您的当前位置:首页第7章 Windows编程基础

第7章 Windows编程基础

来源:年旅网
第7章 Windows编程基础

学习目标:

理解并掌握窗体的基本概念

掌握System.Windows.Forms命名空间和窗体的设计环境 掌握控件的作用及基本操作 掌握用户界面的设计原则

7.1. Windows窗体基础知识

窗体、对话框、消息框

7.1.1 窗体及其构成元素

和其他所有.NET对象一样,窗体也是类的实例。窗体是对象,提供定义外观的属性,定义行为的方法,以及定义与用户交互的事件。通过设置窗体的属性以及编写代码来响应事件、定制对象,以满足应用程序的需求。

窗体也就有继承性,当编程人员向项目中添加一个窗体时,既可以从已经创建的窗体中继承,也可以直接从.NET Framework所提供的System.Windows.Forms.Form类中继承。在.NET开发环境下,编程人员可以创建多种类型的窗体,包括标准窗体、多文档界面窗体、对话框,以及图形例程的显示界面。

窗体中包含了大量的选项卡、按钮、下拉列表、复选框等,这些被称为控件。同窗体一样,控件也是对象,用于向用户显示信息,或者响应用户的输入。对于每一种控件而言,它本身都包含了一组方法、属性和事件,这使得它们可以适用于不同的编程目的。

菜单和工具栏是比较特殊的控件,又称为组件,通过它们可以快速获取应用程序中的主要功能和实用程序。

7.1.2 System.Windows.Forms命名空间

System.Windows.Forms命名空间包含了200多个类,不过它们中的大多数都支持在VS 2005下的可视化操作,这极大方便了编程人员,通过拖拉等操作即可将各种控件放置到窗体上,系统将自动生成代码。

关于System.Windows.Forms命名空间,一般会误认为它取代了Win 32 API。事实上,Windows窗体可以被看作是一个基本级别的包装器,从开发人员的角度,它使用了.NET之前开发工具用过的一系列的OS功能。因而开发人员可以更少地关注对Windows机制的理解,而把更多的精力放在如何创建功能强大的应用程序上面,而这也正是编程人员所最需要的。

7.1.3 窗体设计器

窗体设计器是用户界面的可视化设计环境,在该环境下,编程人员可以将工具箱中的组件或控件直接拖放到窗体中进行设计,这与在代码文件中编写代码的效果是一样的,换句话说,窗体设计器是这些代码的图形显示,是代码的图形界面。

7.1.4 Main方法

C#中创建的所有Windows应用程序都必须包含一个名为Main的静态方法,该方法将作为整个应用程序的入口,同时也是应用程序的伪控制点。

Main方法是一个静态方法,可以返回int类型的值,也可以返回void类型的值。Main方法的声明可以有参数,也可以没有,在没有任何参数的情况下,其声明形式如下:

static int Main() 或 static void Main() 如果希望程序接受命令行参数,那么只需使用如下形式的Main方法:

static

int

Main(string[]

args)

static

void

Main(string[]args)

如果要运行Windows应用程序,就必须调用Application.Run方法。Main方法作为整个应用程序的入口,如果被省略或删除,应用程序将不能被正确编译。在C#中,Main方法可以放置在所选

的任意对象中,但对于每个Windows应用程序而言,只能有一个Main方法,也就是说只能有一个程序入口点。

7.2 控件

使用Windows窗体开发Windows用户界面,实质上就是在使用System.Windows.Forms命名空间。.NET中的大多数控件都派生于System.Windows.Forms.Control类。这个类定义了控件的基本功能,这也就是控件中的许多属性和事件都相同的原因,事实上,许多类本身就是其他类的基类。

7.2.1 控件的属性

控件包含许多属性,用于处理控件的操作。大多数控件的基类都是

System.Windows.Forms.Control,它有许多属性,其他控件要么直接继承

了这些属性,要么重写它们,提供某些特定功能。 属性名称 BackColor 设置控件的背景色 Button Dock Enabled 指定控件的底部距离窗体的顶部有多远,这与指定控件的高度不同 可以使控件靠在窗体的边界上 设置是否允许该控件接收用户的输入,ture表示允许,false表示不允许 作 用 Anchor 当控件的容器大小发生变化时,该控件如何响应 ForeColor 设置控件的前景色 Height 指定控件的高度 Left Name 指定控件的左边界到窗体左边界的距离 控件的名称,代码通过该属性来引用该控件 Parent 指定控件的父控件 Right 指定控件的右边界到窗体右边界的距离 TabIndex 控件在容器中的标签顺序号 TabStop 指定控件是否可以使用Tab键访问 Tag 在控件中存储该控件的信息,当通过窗体设计器给这个属性赋值时,只能给它赋一个字符串值 Top Width

指定控件的顶部到窗体顶部的距离 设置控件的宽度 Visible 指定控件在运行期间是否可见 7.2.2 控件的定位、停靠和对齐

一个优秀的Windows应用程序,其用户界面往往是十分友好的,布局合理是它们的重要特征之一。在VS 2005中,窗体设计器默认使用栅格状的界面,并使用捕捉线来定位控件在窗体上的位置,使控件整齐地排列在界面上。

如果要对齐的控件比较多,显然使用捕捉线的方法是很费时的,需要对控件一个一个进行操作。此时,设计人员可利用Ctrl键选中所有要进行对齐的控件,然后选择【格式】|【对齐】下的相应命令进行对齐。

如果希望相同类型的控件拥有相同的大小,可以首先选中一个控件,然后在其属性窗口查看它的“Size”属性,然后根据该属性值设置其他控件。也可以将其中一个控件移动到另一个控件的一侧,除了出现捕捉控件底部、顶部(或左侧、右侧)的捕捉线以外,还会出现第3条捕捉线,如果释放鼠标,即可使两个控件拥有相同的高度(或宽度)。

7.2.3 控件的事件

控件的事件与用户的操作有关,例如当用户单击窗体上的某个按钮时,该按钮便会生成一个事件,并调用事件处理程序,说明发生了什么(例如要提交信息),以及如何响应(保存提交信息)。 编程人员通常是先设计用户界面布局,然后添加控件的事件处理程序,编写事件处理程序时有3种方式:

双击控件,进入控件默认的事件处理程序,如果该事件是所需的事件,在其中编写代码即可;

如果控件默认的事件不是所需的,可在该控件的属性窗口中,单击【事件】按钮,打开事件列表,只需双击要某个事件(可在事件右侧设置该事件的方法签名,否则系统自动生成默认的方法签名),即可在代码编辑器中自动生成该事件的处理程序,在其中添加代码即可。

编程人员也可以自己添加事件的处理代码,即把代码添加到窗体构造函数中的InitializeComponent()调用之后,此时,必须知

道处理事件的方法签名。

7.3 UI的设计原则

通常所说的良好的“用户体验”,除了软件的功能强大之外,还包括布局合理、简单易用的操作界面,因而在着手设计应用程序的UI之前,了解并掌握一些最基本的设计原则是十分必要的。 使创建的Windows应用程序显得直观的一个好方法就是让它以用户最熟悉的方式来运行,例如在向表格中输入数据时,大多数用户希望使用Tab键在单元格之间进行切换。在具体设计控件如何排列、如何交互时,建议设计者可更多地参考Microsoft Office这样的软件,看看它们是如何放置控件以及与用户交互的。 所以,让自己的程序按照用户之前使用大多数应用程序类似的方式来运行是很不错的想法,但这并不意味着设计者只需从其他应用程序中复制以下UI就可以了,因为对于一个优秀的Windows应用程序,必须具备良好的UI创建,这样才能脱颖而出,关键是如何平衡一个应用程序的熟悉性和独特性。

作为开发人员,应该首先了解所要开发的应用程序所面对的用户群,以及各自的使用模式,并据此来设计自己的Windows程序界面和其他细节。例如对于某些使用模式(对实时性要求很高的信息查询),速度十分关键,此时在设计程序时就应该更多的考虑控件的响应速度。而在另外一些使用模式下,速度不是十分关键,用户界面就是系统,它为用户提供功能导航的作用,此时就应该花费较多的时间来考虑如何使界面的指导性更强,而不至于使用户迷失方向。

Microsoft提供了一个程序,可以让开发人员开发出体现高质量编程经验的应用程序,该应用程序称为“Microsoft Windows Logo Program”。它会在设计者的产品中显示“Designed for Windows”标记,并包含在Windows目录中,详细信息读者可参阅“http://www.microsoft.com/china/winlogo/”中的内容。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务