C#.NET程序设计(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-18 18:27:23

点击下载

作者:黎浩宏

出版社:浙江大学出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

C#.NET程序设计

C#.NET程序设计试读:

前 言

Microsoft Visual Studio 2008是微软公司推出的软件开发系统工具,其功能强大,包括了Visual Basic.NET,Visual C++.NET,Visual C#.NET等语言,而C#.NET使用最广泛,它是专门为.NET应用而开发的语言。这从根本上保证了C#与.NET框架的完美结合。在.NET运行库的支持下,.NET框架的各种优点在C#中表现得淋漓尽致。C#.NET语言是一种面向对象的程序设计语言,特别适合为Microsoft Windows和因特网开发各种解决方案。作为当前最流行的、应用最广泛的语言之一,越来越多的人学习C#.NET程序设计语言,越来越多的高校和培训机构开设了这门课程。

本书采用项目式、任务驱动的方式组织相关知识点,结构新颖,共包含七个项目,每个项目分解成多个模块,每个模块包含教学目标、工作任务、相关实践知识和相关理论知识。教学目标说明了相应模块要掌握的知识,工作任务提出了要解决的问题或要实现的功能,在相关实践知识中详细地描述了完成工作任务的步骤,相关理论知识则介绍了相关的知识点。设计的工作任务是实用的程序,工作任务中包含了要掌握的基础知识点,读者阅读本书时,在完成工作任务的同时也能掌握其包含的相应知识点,增强了目的性,能够提高读者分析和解决实际问题的能力,在相关理论知识部分对知识点的详细介绍,可以将实际应用能力和基础理论知识较好地结合起来。

所有知识点不再用字符界面的控制台程序而是采用Windows应用程序进行介绍,这样读者能够通过Windows界面更直观、更容易地理解和掌握相关知识点内容,将注意力和主要精力放在编程思想的培养和熟悉Windows应用程序常用控件上。

由于C#.NET技术复杂,内容庞大,作为C#.NET语言的入门教材,本书只对常用的知识点进行了详细的介绍,每个项目中的例子操作步骤详细,读者只要按书中的步骤一步一步操作,即能编写出完整的程序,在强调实用的前提下,对基础知识也做了详细的介绍。

本书所包含的计算机编程知识点,请到“附录知识点分布”中查看。

为方便教师教学和读者的学习,本书提供配套电子教案和书中的所有例子的源代码。需要这部分内容的老师和读者可发送Email至jqhuang@zju.edu.cn与浙江大学出版社联系获得。

本书由浙江工贸职业技术学院黎浩宏编著,钱冬云、陈欲勐老师参与编写。由于编者的水平和经验有限,书中纰漏与不足之处在所难免,敬请专家和读者批评指正。如果读者有问题需要与作者讨论,请发Email至:jxlihaohong@163.com。编 者2010年6月

项目一 用Visual C#.NET创建简单的Windows应用程序

编写计算机程序要使用程序编辑软件来编写程序代码,所以熟悉计算机编辑软件的环境非常重要。本项目主要介绍Visual C#.NET集成开发环境、窗体的基本属性和事件以及C#.NET的常见错误。具体如下:(1)模块一介绍在Visual C#.NET集成开发环境下创建Windows应用程序的步骤,设置和使用Visual C#.NET集成开发环境。(2)模块二介绍可视化编程相关基本概念以及窗体的常用属性和事件等知识。(3)模块三介绍Visual C#.NET的常见错误,以及怎样查找和修改常见错误。

模块一 创建并运行 Windows应用程序

一、教学目标

熟悉在Visual C#.NET集成开发环境下创建Windows应用程序的步骤。

二、工作任务

在使用实际的应用程序时,经常会有提示信息提示软件的使用者怎样操作所使用的软件。现在创建一个应用程序,显示提示信息。当单击“提示信息”按钮时。

三、相关实践知识(一)启动Visual Studio 2008开发工具

选择【开始】|【程序】|【Microsoft Visual Studio 2008】|【Microsoft Visual Studio 2008】菜单,将出现界面,该界面为Visual Studio 2008的起始页。(二)创建C#.NET Windows应用程序(1)在Visual Studio 2008集成开发环境中,选择【文件】|【新建】|【项目】菜单,将会弹出“新建项目”对话框。(2)在左侧的“项目类型”区域选择Visual C#树形节点中的Windows。(3)在右侧“模板”区域选择“Windows窗体应用程序”。(4)设定项目保存位置,可以单击“浏览”按钮改变该项目保存的位置,选择好项目保存的位置后,回到该对话框,单击“确定”按钮即可。

此界面会自动出现一个标题栏为“Form1”的窗体(其名为“form1”,以后将其称之为Form1窗体,不再赘述)。(三)向窗体添加控件

在Form1窗体中添加一个Label(标签)控件和一个Button(按钮)控件,具体方法如下:(1)默认情况,在Visual Studio 2008 C#.NET集成开发环境界面中,工具箱窗口是隐藏的,将鼠标指向左侧的工具箱图标,工具箱窗口会自动显示。(2)展开“公共控件”节点,选中Button控件,拖到Form1窗体上,再选中Label控件,拖到Form1窗体上,当鼠标离开工具箱窗口时,工具箱窗口将自动隐藏,停靠在集成开发环境的左侧。(3)将Form1窗体上的标签对象和按钮对象用鼠标拖动到合适位置。(四)设置标签和按钮的属性

此时可以看到,标签和按钮对象上显示的都是英文,设置这两个对象显示的信息为中文,就必须分别设置其对应的属性。方法如下:(1)在Form1窗体上选中label1标签,此时在标签的周围有一个矩形虚线框。(2)在Visual Studio 2008 C#.NET集成开发环境中右下角的属性窗口中(如果属性窗口没出现,可以使用【视图(V)】|【属性窗口(W)】菜单显示属性窗口),拖动属性窗口右侧垂直滚动条,选中Text属性,在Text属性右侧输入“我的第一个应用程序!”。(3)按钮的属性设置与标签的设置方法类似。

控件对象的其他属性设置方法也按相似的步骤,以后不再赘述。

说明:

也可以在属性窗口中选择label1标签或button1按钮。Text属性即为控件上显示的文本内容。(五)编写单击按钮事件处理方法

在Form1窗体上,双击button1按钮,Visual Studio 2008 C#.NET开发环境将进入代码编辑器环境,光标自动定位在button1按钮的单击事件处理方法button1_Click中,只要输入代码即可。

说明:

button1_Click是button1按钮鼠标单击事件处理方法,在运行该项目时,只要单击了该按钮,button1_Click事件处理方法中的所有代码(即该事件处理方法下面的“{”和“}”内的代码,这里只有一行代码)就会被计算机自动运行,而代码“MessageBox.Show(”欢迎使用C#.NET语言开发软件!“, “提示信息”);”的作用是显示信息框,将信息框的标题设置为“提示信息”,信息框显示的信息设置为“欢迎使用C#.NET语言开发软件!”。注意,该行代码最后要有分号。(六)保存项目

选择【文件(F)】|【全部保存(L)】菜单保存项目。(七)运行程序

此时该程序的全部工作已经完成,选择【调试(D)】|【启动调试(S)】菜单,也可以单击工具栏上的按钮,此时会出现窗体,单击窗体的“提示信息”按钮时,将会出现信息提示框。(八)结束程序

依次单击提示信息框和程序窗体右上角的关闭按钮结束程序,也可以在Visual Studio 2008开发环境中,选择【调试(D)】|【停止调试(E)】菜单结束程序。

四、相关理论知识(一)Visual Studio 2008简介

Visual Studio 2008是Microsoft(微软)公司推出的新一代软件开发工具,它包括C#、Visual Basic、Visual C++和.NET Framework。其中.NET Framework 称为.NET框架,它是一种托管的、类型安全的代码执行环境。Visual Studio 6.0之前版本的语言编写的程序可以在Windows环境中直接运行,而Visual Studio 2005和Visual Studio 2008是基于.NET环境,所以用这两个开发工具的语言编写的程序必须在.NET Framework环境下运行,为有别于Visual Studio 6.0之前的语言,分别称之为C#.NET、Visual Basic .NET、Visual C++ .NET语言。用.NET语言编写的程序必须在机器上安装好.NET Framework后方可运行。.NET Framework可以到微软官方网站上下载,Visual Studio 2008 .NET Framework是3.5版本。

.NET Framework包括CLR(Common Language Runtime,公共语言运行库)和.NET Framework类库。CLR负责管理和执行.NET框架代码,符合Visual Studio .NET编译器规则的代码在执行时需要CLR的支持,这些代码称为托管代码(Managed Code)。用.NET语言编写的程序被编译时,应用程序不是被直接编译成二进制代码,而是被编译成MSIL代码(Microsoft Intermediate Language,微软中间语言),MSIL代码在CLR中运行,当应用程序加载后, CLR根据需要将其再次编译成可执行代码,这种编译称为JIT(JustinTime,即时编译)。

.NET Framework类库是Microsoft已经编写好的一个内容丰富的受管制的类代码集合,它可以完成以前要通过Windows ApI来完成的绝大多数任务,使程序员从烦琐的ApI函数调用中解脱出来,专心于应用程序事务的处理。

.NET Framework可以使用户更容易地开发基于Web和基于Windows的应用程序,而且允许使用不同的语言一起进行开发工作。(二)C#概述

C#语言是从C和C++发展而来,其语法和C、C++、Java的语法很多都相同。它汲取了包括C、C++、Java在内的多种语言的精华,是一种简单、完备、类型安全和完全面向对象的高级程序设计语言。C#是专门为.NET应用而开发的语言,与.NET框架完美结合。使用C#可以创建传统的Windows客户端应用程序、XML Web Service、分布式组件、客户端/服务器应用程序、数据库应用程序等。(三)Visual Studio 2008开发环境

1.起始页

包括“最近的项目”、“开始”、“Visual Studio标题新闻”、“MSDN中文网站最新更新”四项内容,在“最近的项目”中可以方便地打开或新建项目和网站,在“开始”中可以选择感兴趣的内容进行入门学习,另外两项可以查看相应的新闻。如果“起始页”界面没有“起始页”,若要显示“起始页”,可以选择【视图(V)】|【其他窗口(E)】|【起始页(G)】菜单。

2.解决方案资源管理器窗口

解决方案资源管理器窗口,用于管理和监控解决方案中的项目,提供项目及其文件的有组织的视图,并且提供对项目和文件相关命令的便捷访问。

如果集成环境中没有出现该窗口,可通过选择【视图(V)】|【解决方案资源管理器(W)】菜单来显示该窗口。

在解决方案资源管理器窗口中包含6个按钮,常用的有4个按钮,分别是“属性”、“显示所有文件”、“查看代码”和“查看设计器”按钮。(1)单击“属性”按钮,可以切换到属性窗口中。(2)单击“显示所有文件”按钮,在该窗口中的树形视图中将列出所有的文件和包含的文件夹。(3)单击“查看代码”按钮,将切换到代码编辑器窗口。(4)单击“查看设计器”按钮,将切换到窗体设计器窗口。

3.工具箱窗口

初始时,工具箱是隐藏在Visual Studio 2008集成开发环境窗口的左侧。如果在集成环境中没有出现该窗口,可以通过选择【视图】→【工具箱】菜单来显示该窗口。

在“工具箱”窗口中用树形视图存放了开发.NET Windows应用程序和开发ASp.NET网页的常用控件,“工具箱”窗口已经为软件开发人员将Visual Studio 2008集成开发环境提供的控件分好了类,软件开发人员可以非常方便地利用工具箱中的各种控件,快速方便地开发应用程序。

在“工具箱”窗口中,可以单击对应树形节点左侧的+号按钮,展开显示相应节点所包含的控件。“公共控件”节点包含的部分控件。

在设计窗体时,将所需的控件添加到窗体中,有如下两种方法:(1)单击相应的控件图标,拖动控件到窗体中,然后在窗体中拖动控件到合适位置。(2)双击相应的控件图标,控件会被自动放到窗体中,此方法适合在窗体中放置多个控件,然后可以在窗体中拖动控件到合适位置,设计符合自己意图的界面。

4.属性窗口

使用该窗口可以编辑和查看文件、项目以及解决方案属性,“属性”窗口最常用的功能是在设计Windows应用程序窗体时查看和修改被选中的控件对象的属性和事件。为所选控件对象设置属性非常简单,其方法可参考本模块的相关实践知识中的“(四)设置标签和按钮的属性”相关设置方法。

下面介绍控件对象的事件设置方法。为所选控件设置事件有以下两种方法。(1)双击控件,可以为控件添加默认的事件。但每个控件的默认事件并不相同,所以在不熟悉的情况下尽量不要用这种方法,如双击按钮,将为按钮添加按钮单击事件。(2)在“属性”窗口中设置控件事件。先选中控件,然后在属性窗口中单击“事件”按钮,将出现窗口,用鼠标双击相应的事件即可为此控件添加相应事件。

5.窗体设计器窗口

窗体设计器窗口用来设计应用程序的界面,用户可以从工具箱中把各种控件添加到窗体上来,并安排它们的布局。

6.代码编辑器窗口

在代码编辑器窗口中,“工具箱”窗口上不会显示相应控件图标。在创建一个新的项目时,只有一个窗体,将看不到窗体代码选项卡,要显示代码编辑器窗口,有如下两种方法:(1)右击窗体,选择【查看代码(C)】菜单。(2)单击“解决方案资源管理器”窗口的“查看代码”按钮。

同样,从代码编辑器窗口切换到窗体设计器窗口,有如下两种方法:(1)右击代码编辑器,选择【查看设计器(D)】菜单。(2)单击“解决方案资源管理器”窗口的“查看设计器”按钮。

在代码编辑器窗口编写代码时,默认情况下,没有显示行号,要设置行号,可以用以下方法实现:(1)选择【工具(T)】|【选项(O)...】菜单。(2)在左侧树形视图中,选择“文本编辑器”节点,选中“C#”,在右侧的下方,选中复选钮“行号”,单击“确定”按钮即可。

7.改变Visual Studio 2008集成开发环境中窗口的显示

在Visual Studio 2008集成开发环境中,“工具箱”窗口被自动隐藏了,并以一个按钮方式显示在Visual Studio 2008集成开发环境中的左侧。而属性窗口以及“解决方案资源管理器”窗口没有隐藏,其实这两个窗口目前处于停靠的状态,可以看到这两个窗口“自动隐藏”按钮像一个图钉,图钉是向下的,这种状态是停靠状态。当单击“自动隐藏”按钮时,相应的窗口将会自动隐藏。可以通过单击“自动”隐藏按钮实现窗口是否是隐藏状态。

在Visual Studio 2008集成开发环境中,常用的有“工具箱”、“解决方案资源管理器”、“属性”等窗口,其实,这些窗口可以被用户自由放置在用户想要的位置上。这里说明属性窗口位置的设置方法,其余窗口设置方法相同,其方法如下:(1)鼠标拖动“属性”窗口的标题栏,拖动“属性”窗口到Visual Studio 2008集成开发环境窗口中间,此时在Visual Studio 2008集成开发环境窗口中间会出现一个菱形标志。(2)在拖动“属性”窗口的同时,鼠标在相应按钮上,当出现蓝色背景时,放开鼠标,“属性”窗口将会停靠在指示的位置。

默认情况下,“属性”窗口放置在“解决方案资源管理器”窗口的下方。当“属性”窗口被移动到其他地方,要将“属性”重新放到“解决方案资源管理器”窗口下方,只要将“属性”窗口拖到“解决方案资源管理器”窗口中间,当“解决方案资源管理器”窗口中间出现菱形标志时,按相同的方法操作即可。

8.Visual C#.NET Windows项目有关操作和相关文件(1)创建Visual C#.NET Windows项目将产生的文件

创建项目后,Visual C#.NET将会自动以解决方案名创建一个文件夹,在该文件夹下,包含Visual C#.NET Windows项目产生的相关文件和文件夹。(2)创建项目

创建项目可以参考本模块相关实践知识的步骤,不再赘述。(3)保存项目

在创建好项目后,可以选择【文件(F)】|【全部保存(L)】菜单保存项目,也可以在标准工具栏上单击“全部保存”按钮保存项目。(4)打开项目

要选择.sln文件才可以打开项目,可以用以下3种方法打开项目:

① 在起始页中,选择“最近的项目”中相应的选项。

② 在Visual Studio 2008环境中,选择【文件(F)】|【打开(O)】|【项目/解决方案(p)...】菜单。

③ 在Visual Studio 2008环境中,选择【文件(F)】|【最近的项目(J)】菜单,在下一级菜单项中再选择相应的菜单。

当用Visual Studio 2008环境打开已有的项目时,如果看不到项目的设计窗体,可以在“解决方案资源管理器”窗口中双击对应的窗体代码文件节点项(如Form1.cs)即可看到相应的窗体。

9.Visual Studio 2008环境的三种状态

Visual Studio 2008环境可以有三种状态,即当用户在设计窗体界面和编写代码,处于设计时;当用户在运行项目程序,处于运行时(Visual Studio 2008环境窗口的标题栏上有“正在运行”字样出现);当用户在调试项目程序时(Visual Studio 2008环境窗口的标题栏上有“正在调试”字样出现)。显然,在运行和调试项目程序时,用户是不可以修改代码和设计窗体界面的,如果此时修改代码,会出现错误提示框。

模块二 窗体的简单应用

一、教学目标

会设计窗体,能正确使用窗体的常用属性和事件。

二、工作任务

运行程序时,单击“隐藏窗体”按钮,窗体被隐藏,会显示一个信息框,当单击信息框的“确定”按钮,信息框消失,窗体同时被显示。当在文本框上输入数值,单击“求平方”按钮,在窗体上会显示相应数值的平方数。当单击“关闭窗体”按钮,窗体被关闭,同时结束应用程序。

三、相关实践知识(一)设计窗体及相关控件属性

该步骤即为模块一的第3、4步,启动Visual Studio 2008开发工具和创建C#.NET Windows应用程序方法见本项目的模块一相关实践知识,在以后的模块中这两步不再赘述,都直接从设计窗体及相关控件属性步骤开始说明。

1.设计窗体界面

窗体设计界面。

2.添加控件和设置控件属性

窗体上共添加2个标签(Label),3个按钮(Button),一个文本框控件(TextBox)。为方便描述设计窗体方法,如文本框(TextBox)控件,所对应的是“工具箱”窗口的“公共控件”中的TextBox控件。设置控件的具体属性方法请参见本项目模块一中的相关实践知识。

3.设计窗体上控件的布局

可以看到“关闭窗体”按钮明显和其他两个按钮不在同一行上,当然可以用鼠标将该按钮手动拖动到和其余两个按钮于同一行中。

这里介绍利用“布局”工具栏的方法设置窗体上控件的布局方式。布局工具栏各按钮功能。

将窗体上三个按钮水平对齐设置的方法如下:(1)选中这三个按钮: 可以先选中第一个按钮,然后按住〈Ctrl〉键不放,鼠标依次单击另外两个按钮;也可以在窗体上用鼠标拖动,当出现的虚线框包含这三个按钮时放开鼠标即可。(2)布局工具栏上的各个按钮由灰色不可用状态变为可用状态时,单击“底部对齐”或“顶部对齐”按钮。

4.设计程序运行时窗体上的控件获得焦点的顺序

当运行程序时,如果窗体上的控件很多,用键盘操作比较方便,按〈Tab〉键,可以将焦点自动定位到后面的控件上。要设置控件获得的焦点顺序,就必须设置控件的TabIndex属性,该属性是控件的Tab顺序索引。

在添加控件时,该属性值将由Visual C#.NET自动分配一个值,其序号是由0开始顺序分配的,如添加的第一个控件的TabIndex属性值为0,第二个控件的TabIndex属性值为1,以此类推。在运行程序时,TabIndex属性值为0的控件将自动获得焦点,按Tab键,焦点将会定位到TabIndex属性值为1的控件,以此类推。

控件的TabIndex属性值可以在属性窗口中设置,但非常繁琐,如果使用布局工具栏上“Tab键顺序”按钮的方法进行设置,使用起来非常方便。(1)选中窗体或窗体上的任何控件,单击“布局”工具栏上“Tab键顺序”按钮(也能选择【视图(V)】|【Tab键顺序(B)】菜单),在每个控件左上角上将出现蓝底的数字,该数字即为对应控件的TabIndex属性值。(2)第一次单击程序运行时要获得焦点的控件,然后按照控件获得焦点的次序依次单击对应的控件。设计完成后,单击“布局”工具栏上“Tab键顺序”按钮,每个控件左上角上出现的蓝底数字消失即可。

说明:

有一些控件在程序运行时是不能获得焦点的,如标签不能获得焦点。其实能获得焦点的控件都有一个“TabStop”属性,不能获得焦点的控件没有这个属性,如标签就没有。只有将“TabStop”属性设置为True的控件,在运行程序时,按〈Tab〉键才能获得焦点。控件的“TabStop”属性值默认是True。

5.锁定控件和窗体

当设计好窗体后,如果不允许修改窗体上控件的设计效果,即不允许改变控件在窗体上的位置,可以锁定控件或窗体,只要选择窗体或窗体上的任何控件,右击鼠标,在弹出的菜单上选择【锁定控件】菜单即可,此时选中的窗体或窗体上的控件左上角有一个锁的图标,这时将不能改变控件在窗体上的位置。解除锁定的方法和锁定的方法相似,不再赘述。默认情况下,窗体和控件没有被锁定。(二)编写事件处理程序

1.编写窗体的Load事件处理方法

程序代码如下:

1.private void Form1_Load(object sender, EventArgs e)

2.{

3.textBox1.Text = “5”;//将文本框textBox1上信息设置为5

4.label2.Text = “25”;//将标签label2的显示内容设置为25

5.this.Text = “显示和隐藏窗体”;//设置窗体的标题显示信息

6.}

只要双击窗体,或者通过属性窗口为Form1窗体添加Load事件,即会自动生成Form1_Load事件的代码框架,即1、2、6行代码是Visual C#.NET环境自动生成的,只要输入3、4、5行代码。

要注意,在编写代码时,除了字符串数据外(即带有双引号中数据,如“25”和“显示和隐藏窗体”都是字符串数据),所有的符号都要在英文输入法方式下输入,包括字符串数据的双引号,否则将会出错,每行语句后面要求有分号。

代码中“=”是赋值语句,就是将“=”左边的值用“=”右边的属性保存,如第5行代码,this在这里表示当前运行的窗体对象,this.Text就是该窗体上的标题栏。这里使用赋值语句将窗体的Text属性值设置为“显示和隐藏窗体”。

窗体的Load事件在窗体加载到内存时发生,即Load事件内的代码会被执行,这里3、4、5行代码会被执行。可以这样理解,窗体在屏幕上显示之前,Load事件会发生,该事件中的代码都会被执行。一般将程序的初始化代码放在Load事件中进行处理。窗体标题栏是“显示和隐藏窗体”,而程序设计界面,窗体标题栏是“Form1”,就是因为Load事件发生了,显示的窗体标题栏信息和设计时窗体标题栏信息不相同的原因。

每行代码后面的中文说明,是注释语句,由“//”标明。计算机在运行程序时,这些内容会被计算机忽略,不会被执行,注释只是起解释程序代码的作用。读者在练习编写程序时,前面的序号不要输入,这里仅为了方便说明。

2.编写“隐藏窗体”按钮单击事件处理方法

private void buttonhideSelf_Click(object sender, EventArgs e)

{

this.hide( );//隐藏窗体

MessageBox.Show(“单击确定按钮,使窗体重新显示!”,“信息框”);

this.Show( );//显示窗体

}

hide和Show都是窗体的方法,分别用于隐藏和显示窗体。

3.编写“关闭窗体”按钮单击事件处理方法

private void buttonClose_Click(object sender, EventArgs e)

{

Close( );

}

Close方法用于关闭窗体,该方法也是窗体的方法。这里在Close前省略了this。

4.编写“求平方”按钮事件单击处理方法

1.private void button1_Click(object sender, EventArgs e)

2.{

3.float a, b;//定义两个单精度实数变量a,b

4.a = Convert.ToSingle(textBox1.Text);

5.b = a * a;

6.label2.Text= Convert.ToString(b);

7.}

第4行代码中,Convert.ToSingle方法表示ToSingle方法是Convert类的一个方法,作用是将括号内的内容转化为单精度实数,这里将textBox1.Text(即文本框中输入的信息)转化为实数,这是由于textBox1.Text是字符串数据,要将它转化为实数才能赋值给单精度变量a。Convert.ToString方法的作用是将其括号中的内容转化为字符串。

代码“b = a * a;”中,a*a代表a的平方,*表示乘,该语句就是将a的平方赋值给变量b,即用变量b保存a的平方的值。

四、相关理论知识(一)Visual C#.NET的基本概念

1.可视化编程

Visual C#.NET 2008采用可视化编程方法,软件开发人员可以在集成开发环境中通过控件来创建对象,通过属性窗口为每个控件设置属性,开发人员只要编写相应的用户动作的事件处理程序即可,大幅度地减少了软件开发人员编写代码的工作量。

2.类

C#是面向对象(ObjectOriented programming,OOp)的程序设计语言。类(class)是面向对象的基本概念,是对具有相同特征的一类事物所作的抽象,是对同一种对象的统称,是一个抽象的整体概念。如“汽车”、“书”、“电视机”、“人”等都是抽象出来的某个类的概念。

如在Visual C#.NET设计环境中,“工具箱”窗口中包含的Label1、TextBox、Button等控件都是类。

3.对象

类是一种抽象,而对象(object)则是实例(instance),是具体的。如“书”是类,这是一个统称,而你自己拥有两本书,如《C#程序设计》、《大学英语》是具体的两本书,这两本书就是“书”的对象。再如建造5幢居民楼前,要先有设计图,设计图包括房子的格局,设计图就是“类”,而建造的5幢具体的居民楼房则是对象,它们都有相同的格局。

模块二中窗体上的“隐藏窗体”、“关闭窗体”、“求平方”三个按钮就是按钮对象,是具体存在于窗体上的按钮。

4.属性

属性说明了类具有的特点、性质。如每个人都有脸、眉毛、眼睛,脸、眉毛、眼睛就是人的属性,而人就是类, 具体的每个人都可以用这些方面来描述。如张三、王珊两个人,这两个人就是人这个类的两个具体的对象。如张三的脸是长脸,眉毛是浓眉,眼睛是单眼皮;而王珊的脸是瓜子脸,眉毛是柳叶眉,眼睛是双眼皮,这些特征就是人对象的属性。

用C#语言格式来说明张三的特点,采用下列方式:

张三.脸=长脸;

张三.眉毛=浓眉;

张三.眼睛=单眼皮;

同理,王珊的这三个特点也要用上面的格式来说明。用“.”来描述属性是哪个对象的属性,“张三.脸”表示张三的脸,“王珊.眼睛”表示王珊的眼睛。“.”可以理解为“的”的含义,如textBox1.Text表示是textBox1的Text属性。

引用属性的格式如下:

对象名.属性名

可以设置或者获取属性值,其中控件的属性设置方法有两种方式:(1)在属性窗口进行设置,没有特别要求且能够实现功能时,建议尽量用该方法。(2)用代码方式,要用赋值语句,其格式如下:

对象名.属性名=属性值;

如在本模块中,将文本框的显示信息设置为“5”的代码如下:

textBox1.Text = “5”;

而获取属性值时,直接用以上格式,如可以在本模块窗体单击事件中写入如下代码:

private void Form1_Click(object sender, EventArgs e)

{

this.Text=TextBox1.Text;

}

运行程序时,单击窗体,窗体的标题栏显示内容将设置为文本框的输入信息。

5.方法

类的方法可以看做是类所具有的动作或行为。如人都会吃菜、睡觉、走路,这三个动作就是人这个类的方法。假设现在张三正在走路,王珊正在吃菜,吃的是白菜,用C#语言格式来说明这两个人现在的行为,就可以用下列格式:

张三.走路( );

王珊.吃菜(白菜);

在调用某个对象的方法时,“.”可以理解为“做”的含义。用代码实现方法时,必须在方法后加上小括号,小括号内是参数。

调用方法的格式如下:

对象名.方法名([参数表]);

类名.方法名([参数表]);

如在本模块中,显示窗体的代码如下:

this.Show( );

表示这个方法是this(即当前窗体)对象“做”的,即显示当前窗体。

而代码“MessageBox.Show(”单击确定按钮,使窗体重新显示!“,”信息框“);”表示显示信息框,括号内的参数用于定义信息框的标题和显示的信息,这里MessageBox是一个类名,即信息框类。

6.事件

事件是对象发送的消息,当用户执行一个操作,如单击一个按钮,按一个键,就会发生一个事件。该事件计算机能够识别,通常称之为触发了一个事件。如窗体的加载事件(Load)、鼠标移动事件(MouseMove)等。

7.事件方法

事件方法其实是一个特殊的方法,之所以称之为事件方法,是因为该方法和相应的事件进行了关联。当一个事件被触发时,该事件方法会被自动调用,即事件方法中的代码会被计算机执行。如本模块中单击“关闭窗体”按钮时,该按钮的Click事件会被触发,相应的事件方法(即buttonClose_Click方法)中的“Close( );”代码会被自动执行。

事件方法的定义格式如下:

private void 对象名_事件名(参数列表)

{

…//这里需要软件开发人员编写事件处理程序

}

如:

private void buttonClose_Click(object sender, EventArgs e)

{

Close( );

}

就是由“关闭窗体”按钮(buttonClose是 “关闭窗体”按钮的名称)触发的Click事件,该事件方法只能响应“关闭窗体”按钮单击事件。(二)命名空间

命名空间是C#代码的基本组织形式,是组织应用程序的一种结构,类、结构等各种类型定义都必须包含在命名空间中。

命名空间在默认情况下会自动创建,命名空间的名字默认为项目名,由关键字namespace声明,第8行代码namespace WindowsApplication1,其中WindowsApplication1是命名空间的名字。命名空间中的代码都必须包含在一对大括号“{”和“}”之中。“{”表示开始,“}”表示结束,且大括号必须成对使用,少了任何一个都会出错。第9行的“{”表示命名空间由此开始,第41行的“}”表示命名空间到此结束,而第10~40行的代码都属于命名空间WindowsApplication1。

C#要求其程序中的每一个元素都要属于一个类。程序的第10行public partial class Form1:Form代码声明了一个类,类的名字叫Form1,即窗体类。类包含了一对大括号,大括号的内容就是这个窗体类的代码,第11~40行中的所有内容都是窗体类的代码。

C#程序是用命名空间来组织代码的,类都存在于命名空间中,要访问某个命名空间中的类或对象,必须用如下语法:

命名空间.类名

如System.Windows.Forms.MessageBox.Show(“单击确定按钮,使窗体重新显示!”, “信息框”),其中,MessageBox是一个类,是命名空间System.Windows.Forms中的一个类,而Show只是MessageBox类的一个方法。

命名空间用“.”(圆点)来说明命名空间的层次,其含义是后面的命名空间属于前面的命名空间的子命名空间,如System.Windows.Forms表示Forms命名空间是Windows 命名空间的子命名空间,而Windows 命名空间是System命名空间的子命名空间。类似于Windows操作系统下的文件夹组织结构,如C:/program Files/Google/ googletoolbar,文件夹下可以包含子文件夹,但文件一定在一个文件夹下。同理,在C#中,类一定在命名空间下,而命名空间可以包含子命名空间。只不过文件夹用“/”来表示文件夹的层次,命名空间用“.”来表示命名空间的层次。

在C#中,使用using关键字来导入命名空间,第1~7行的代码都是导入命名空间。其实类MessageBox是System.Windows.Forms命名空间中定义好的一个类,所以实际上用户在访问MessageBox类时,完整的写法应该是:

System.Windows.Forms.MessageBox;

但是,在程序的第一行,使用了“using System.Windows.Forms;”这条语句用using语句导入System.Windows.Forms命名空间,这样在本程序中可以直接使用System.Windows.Forms命名空间中的类或对象,所以要访问MessageBox类,就可以省略System.Windows.Forms,直接写MessageBox即可。(三)C#代码语句基本规则

1.注释语句

注释语句只是起解释程序代码的作用,注释语句的目的是帮助程序阅读者更容易阅读和理解程序。计算机在运行程序时,这些内容会被计算机忽略,不会被执行。有两种注释符号:(1)由“//”开始的语句就是注释语句,主要用于单行注释,如下面语句:

this.hide( );//隐藏窗体(2)由“/*”开始,“*/”结束,可以创建多行注释,上面代码也可以如下表示:

this.hide( );/*隐藏窗体*/

2.语句结束符号

C#语句的最后都要有一个“;”(分号)来结束。

3.代码书写规则

编写C#程序时,书写格式自由,一行内可以写几个语句,一个语句也可以写在多行上,但建议一行内不要写多行语句,只写一行语句。

4.赋值语句

赋值语句符号是“=”,作用是为一个属性或变量(没有程序设计基础的读者请参阅项目二相关内容)指定一个值,即将“=”左边的值设置为“=”右边的内容,如代码“a=6;”含义是将6赋值给a,这样a的值就是6,千万不要理解为“a等于6”的判断含义,这与数学中的“=”是不同的。

5.C#代码区分大小写

在书写C#程序代码时,一定要注意C#代码的大小写。特别是控件的方法和属性繁多,要记住这些内容必须花费大量的精力。值得高兴的是,Visual Studio 2008开发环境提供了非常棒的“智能感知”技术,只要写好控件名或变量名,系统会自动出现提示,能有效地帮助开发人员完成程序的编写,节省记忆属性名和编写代码的时间。

当你要输入代码“MessageBox.Show(”单击确定按钮,使窗体重新显示!“, “信息框”);”时,输入“me”,系统会自动将“me”开头的类名显示出来,你用鼠标或用键盘选择相应选项后,按“.”时,代码“MessageBox”会自动输入,系统也会自动设置好输入代码的大小写,同时会出现MessageBox的方法选项,选择“Show”方法选项后,输入“(”,即可打开方法提示窗口,输入好参数后,当输入“)”时,提示信息自动消失。建议读者尽量使用“智能感知”技术输入代码,既可以快速输入代码,又不会出现大小写字母错误。(四)窗体

在Windows中,大多数用户界面都是由窗体组成的。因此,大多数控件也是基于窗体的。窗体是屏幕上被边框围住的一部分,它有标题而且通常有一个系统菜单。窗体可以在屏幕上移动,可以关闭,可以最大化或最小化。

Visual C#.NET Windows应用程序是从建立窗体开始的,因此熟练掌握窗体的重要属性、方法和事件,对于开发应用程序非常关键。

1.窗体常用属性

窗体有很多属性,在Visual C#.NET中大多数控件都有这些属性,其设置方法相同,含义基本上相同。(1)Name属性

用Name属性指定窗体的名称,在程序中就用该名字表示该窗体,它只能在属性窗口中被修改,在代码中不能被修改。在项目中,建立的第一个窗体名称缺省为Form1,第二个窗体名称缺省为Form2,以此类推。在为窗体命名时,最好取一个见名思义的名字,如mainForm(Form表示该名字是一个窗体的名字,main表示是主窗体),这样程序的可读性比较好,以后要修改或者维护就更容易。(2)Text属性

Text属性用来设置或返回窗体标题栏上的文本内容。(3)Size、Width、height属性

Size、Width、height这三个属性用于确定窗体的宽度和高度,包括窗体标题栏和四周边框的宽度和高度,都是以像素为单位。Size属性是一个结构类型,包括窗体的高度和宽度;Width属性表示窗体的宽度;height属性表示窗体的高度。

例如:

this.Size = new Size(306, 301);

将窗体的宽和高设置为306像素和301像素。(4)Location、Left、Top属性

Location属性用于指定窗体在屏幕上的显示位置,一般与Startposition属性配合使用,只有当Startposition属性设置为Manual时,窗体才按Location属性值的位置显示窗体。 该属性是一个结构类型,包括窗体左上角的横坐标和纵坐标位置,Left属性表示窗体距离屏幕左侧的宽度, Top属性表示窗体距离屏幕上端的高度。也可以由这两个属性设置窗体的显示位置。如:

this.Location = new point(200, 100);

等价于:

this.Left=200;

this.Top=100;

其功能是: 将窗体显示在屏幕上的(200,100)位置处,即是窗体的横坐标和纵坐标定位的位置。(5)Startposition属性

Startposition属性用来指定程序运行时窗体显示的起始位置。(6)BackColor属性

BackColor属性用来指定窗体的背景颜色。

例如:

this.BackColor= System.Drawing.Color.Red;

其作用是将窗体的背景颜色设置为红色,这里用到了Color结构体类型,该类型是System.Drawing下系统定义好的一个结构体类型,可以直接拿来用。(7)ForeColor属性

ForeColor属性用来指定窗体的前景颜色,用法与BackColor属性相同。(8)Cursor属性

Cursor属性用于确定鼠标在该窗体上的鼠标形状,默认值为Default。使用语法如下:

对象名.Cursor=System.Windows.Forms.Cursors.Value;

例如:

this.Cursor=System.Windows.Forms.Cursors.hand;

该语句含义是当鼠标移动到窗体上时,光标将变成手形。(9)BackgroundImage属性

BackgroundImage属性用于指定窗体的背景图片,在属性窗口上设定该属性时,可以单击该属性右边的按钮,然后在出现的对话框进行设置。(10)MaximizeBox(最大化按钮)、MinimizeBox(最小化)属性

上述两属性用于指定窗体是否显示最大化、最小化按钮,只有这两个属性同时设置为False时,窗体上才不会显示这两个按钮。只有一个设置为False时,窗体就会显示这两个按钮,只不过设置为False的按钮不可用。(11)ControlBox属性

ControlBox属性用于指定窗体是否显示“控件/系统”菜单框。(12)Windowstate属性

Windowstate属性用于表示程序运行时窗体的显示状态。该属性有多个取值。

2.窗体常用方法(1)Show和ShowDialog方法

Show方法用于显示无模式窗体,ShowDialog将窗体显示为模式对话框窗体。所谓模式对话框窗体即只有对当前的窗体作出响应后才能切换到其后的窗体,而无模式窗口能在两个窗体间任意切换。这两个方法的使用格式为:

窗体名.Show( );

窗体名.ShowDialog( );【例1-1】该程序实现显示模式对话框窗体与无模式窗体。

运行界面,在主窗体中当单击“show方法”按钮时,出现窗体,此时可以在该窗体和主窗体之间来回切换,当在主窗体上单击“ShowDialog方法”按钮时,出现窗体,此时不能在该窗体和主窗体之间来回切换,只有关闭该窗体后才能回到主窗体上。

设计和编写代码方法如下:

步骤1:创建C# Windows程序后,会自动创建一个Form1窗体,在Visual Studio C#开发环境中选择【项目(p)】|【添加Windows窗体(F)...】菜单,出现界面,选择“Windows窗体”选项,可以为添加的窗体改名,单击确定按钮即可为该项目添加一个窗体。

步骤2:在Forml窗体中添加2个Button(按钮)控件,在Form2窗体中添加1个Button(按钮)控件。

步骤3:为控件编写事件处理方法。

为Form1上的“Show方法”按钮编写单击事件处理方法,代码如下:

private void buttonFormShow_Click(object sender, EventArgs e)

{

Form2 formShow = new Form2( );//创建Form2的窗体对象

formShow.Text = “非模式状态”;//为窗体对象标题栏设置信息

formShow.Show( );//显示无模式窗体

}

为Form1上的“ShowDialog方法”按钮编写单击事件处理方法,代码如下:

private void buttonFormShowDialog_Click(object sender, EventArgs e)

{

Form2 formShowDialog= new Form2( );

formShowDialog.Text = “模式对话框状态”;

formShowDialog.ShowDialog( );

}

在开发环境中添加的窗体Form2是一个窗体类,要显示这个窗体,必须用new创建这个窗体类的对象,然后才能显示窗体,这两个方法都创建了Form2窗体对象,用了两种方式来显示窗体。

为Form1上的“关闭”按钮编写单击事件处理方法,代码如下:

private void button1_Click(object sender, EventArgs e)

{

Close( );

}(2)hide和Close方法

hide方法用于隐藏窗体,而Close方法用于关闭窗体,使用这两个方法时,所看到的效果都是窗体会消失。但要注意这两个方法的区别,当用hide方法隐藏窗体时,窗体实际上还在内存中,此时可以用Show方法将窗体重新显示出来,如果用Close方法关闭窗体,则该窗体的资源已被释放,窗体已经不在内存中了,不能直接用Show方法将其显示出来。这两个方法的使用格式为:

窗体名.hide ( );

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载