第1章C#代码编写基础_第1页
第1章C#代码编写基础_第2页
第1章C#代码编写基础_第3页
第1章C#代码编写基础_第4页
第1章C#代码编写基础_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、网络编程基础网络编程基础教材:教材:C#程序设计教程程序设计教程任课教师:段赵磊任课教师:段赵磊上课时间上课时间:1、2、3、7、8、9、10、11、15、16、17周周周二第二大节周二第二大节1、3、7、8、9、10、11、15、16周周周四第五大节周四第五大节 单双周都上单双周都上电教楼电教楼404实验时间:实验时间:第第1、2、3、9、10、11、12、13、15、16周周周四中午周四中午12:10-13:50 网络运维网络运维13-1、2第第1、2、3、7、8、9、10、11、16、17周周周四第四大节周四第四大节 16:10-17:50 网络工程网络工程13-1实验楼实验楼302第第

2、1章章 C#代码编写基础代码编写基础5Ch1 C#代码编写基础代码编写基础1.1 C#语言和语言和VS2012开发环境开发环境1.2 C#项目的组织项目的组织1.3 控制台应用程序控制台应用程序1.4 Windows窗体应用程序窗体应用程序1.5 WPF和和Silverlight应用程序应用程序1.6 独立应用程序和浏览器运行的应用程序独立应用程序和浏览器运行的应用程序1.1 C#语言和语言和VS2012开发环境开发环境l1.1.1 C#语言和语言和.NET框架框架l1.1.2 VS2012开发环境开发环境71.1.1 C#语言和语言和.NET框架框架lC#(读作(读作“C sharp”)是一

3、种完全面向对象的基)是一种完全面向对象的基于于.NET框架的高级程序设计语言。框架的高级程序设计语言。C#的开发背景的开发背景 C#是从是从C和和C+演变而来的,并且结合了演变而来的,并且结合了C/C+的强大功能、的强大功能、Java的面向对象特性和的面向对象特性和Visual Basic的易用性,从而成为一种简单的的易用性,从而成为一种简单的类型安全、面向对象的编程语言,也是类型安全、面向对象的编程语言,也是.NET公共语言运行环境的内置语言。公共语言运行环境的内置语言。C#代码可以代码可以从公共语言运行库的服务中获益。从公共语言运行库的服务中获益。 C#是唯一为是唯一为.NET Frame

4、work设计的语言,设计的语言,是用于是用于.NET开发的最好选择。开发的最好选择。C#语言的特点语言的特点C#语言的特点语言的特点.NET框架为框架为C#提供了一个强大的、易用的、逻辑提供了一个强大的、易用的、逻辑结构一致的程序设计环境。结构一致的程序设计环境。C#具有如下的特点:具有如下的特点:专门为快速编写在专门为快速编写在.NET框架上运行的各种应用程序而框架上运行的各种应用程序而设计。设计。语法简洁语法简洁精心的面向对象设计精心的面向对象设计与与Web的紧密结合的紧密结合可靠的安全性与错误处理可靠的安全性与错误处理可靠的版本控制技术可靠的版本控制技术灵活性和兼容性。灵活性和兼容性。1

5、.1.1 C#语言和语言和.NET框架框架lMicrosoft.NET框架框架定义定义uMicrosoft.NETMicrosoft.NET框架是生成、运行框架是生成、运行.NET.NET应用程序和应用程序和Web ServiceWeb Service的组件库。的组件库。包含包含u公共语言运行库公共语言运行库u类库类库类库为开发和运行类库为开发和运行.NET.NET应用程序提供了各种支持应用程序提供了各种支持类库是与公共语言运行库紧密集成的可重用的类的集合类库是与公共语言运行库紧密集成的可重用的类的集合。1.1.1 C#语言和语言和.NET框架框架lMicrosoft.NET框架框架特点:一种

6、框架多种语言特点:一种框架多种语言u支持支持C#C#语言、语言、VB.NETVB.NET语言、语言、C+C+和和C+.NETC+.NET语言、语言、F#F#语言等高级语言语言等高级语言注意注意u用基于用基于.NET.NET框架开发的应用程序,不论使用的框架开发的应用程序,不论使用的是哪种高级语言,均必须在安装了是哪种高级语言,均必须在安装了.NET.NET框架的计框架的计算机上才能运行。这种架构与算机上才能运行。这种架构与JavaJava应用程序必须应用程序必须由由JavaJava虚拟机支持相似。虚拟机支持相似。什么是什么是.NET .NET框架(框架(.NET Framework) 是由微软

7、开发,是由微软开发,一个致力于快速应用开发、平台无关性和网络透明化一个致力于快速应用开发、平台无关性和网络透明化的软件开发平台。的软件开发平台。.NET包含许多有助于互联网和内部包含许多有助于互联网和内部网应用迅捷开发的技术。网应用迅捷开发的技术。.NET Framework可以创建可以创建Windows应用程序、应用程序、Web应用程序、应用程序、Web服务和其他服务和其他各种类型的应用程序。各种类型的应用程序。 .NET框架是一个多语言组件开发和执行环境,它框架是一个多语言组件开发和执行环境,它提供了一个跨语言的统一编程环境。提供了一个跨语言的统一编程环境。.NET框架的目的框架的目的是便

8、于开发人员更容易地建立是便于开发人员更容易地建立Web应用程序和应用程序和Web服服务,使得务,使得Internet上的各应用程序之间,可以使用上的各应用程序之间,可以使用Web服务进行沟通。服务进行沟通。 .NET平台介绍平台介绍 .NET平台介绍平台介绍1.1.1 C#语言和语言和.NET框架框架lMicrosoft.NET框架框架-公共语言运行库公共语言运行库公共语言运行库公共语言运行库u是是.NET.NET框架的基础,为多种编程语言提供统一框架的基础,为多种编程语言提供统一的运行环境。的运行环境。1.1.1 C#语言和语言和.NET框架框架lMicrosoft.NET框架框架-公共语言

9、运行库公共语言运行库中间语言中间语言ILu使用使用.NET.NET框架提供的编译器可直接将源程序编译为框架提供的编译器可直接将源程序编译为.EXE.EXE或者或者.DLL.DLL文件,此时编译出来的程序代码并不文件,此时编译出来的程序代码并不是是CPUCPU能直接执行的机器代码,而是一种中间语言能直接执行的机器代码,而是一种中间语言ILIL代码代码( Microsoft Intermediate ( Microsoft Intermediate Language,MSIL)Language,MSIL)u使用中间语言代码的优点使用中间语言代码的优点可以实现平台无关性,即与特定的CPU无关;只要能

10、将某种语言编译为IL代码,就可以实现这些语言之间的交互操作。1.1.1 C#语言和语言和.NET框架框架l即时编译即时编译执行时执行时CLR会将需要的会将需要的IL代码装入内存,通过代码装入内存,通过JIT编译器(编译器(Just-In-Time)将其编译成所用平台的)将其编译成所用平台的CPU可直接执行的可直接执行的机器代码。机器代码。即时编译并不是一次把整个应用程序全部编译完,而是只即时编译并不是一次把整个应用程序全部编译完,而是只编译它调用的那部分代码所在的模块。编译它调用的那部分代码所在的模块。l为什么要采用即时编译为什么要采用即时编译JIT编译器可以有效地提高系统的性能。编译器可以有

11、效地提高系统的性能。可可利用现有利用现有CPU和和GPU硬件提供的功能即时生成优化后的硬件提供的功能即时生成优化后的可执行代码。可执行代码。1.1.2 VS2012开发环境开发环境lVS2012开发环境开发环境1安装安装VS2012u速成版(速成版(Express EditionExpress Edition)-免费免费u专业版(专业版(Professional EditionProfessional Edition)u旗舰版(旗舰版(Ultimate EditionUltimate Edition)-本书调试用的本书调试用的环境环境2安装安装VS2012 SP33配置配置VS2012开发环境

12、的界面风格(可选)开发环境的界面风格(可选)u深色深色u浅色浅色1.1.2 VS2012开发环境开发环境1.2 C#项目的组织项目的组织l1.2.1 命名空间命名空间l1.2.2 using关键字关键字l1.2.3 Main方法方法l1.2.4 代码注释代码注释l1.2.5 通过断点调试通过断点调试C#程序程序l1.2.6 C#代码编写命名规范代码编写命名规范1.2 C#项目的组织项目的组织lC#源文件的扩展名为源文件的扩展名为.cs,如,如Welcome.cs。l一个一个C#源文件中一般只包含一个类源文件中一般只包含一个类【建议这样做建议这样做】,但也可以包含多个类,文件名和类名可以相同,但

13、也可以包含多个类,文件名和类名可以相同【建建议相同议相同】,也可以不同,也可以不同【包含多个类时一般不和类名包含多个类时一般不和类名相同相同】。l调试环境下调试环境下:项目编译后生成的文件默认保存在项目项目编译后生成的文件默认保存在项目的的binDebug文件夹下。文件夹下。1.2.1 命名空间命名空间l命名空间命名空间是对类的一种划分,类似于目录和文件的划分形式是对类的一种划分,类似于目录和文件的划分形式 。命令空间是一种逻辑划分,而非物理上的存储分类。命令空间是一种逻辑划分,而非物理上的存储分类。命名空间命名空间命名空间命名空间命名空间命名空间命名空间命名空间命名空间命名空间命名空间命名空

14、间命名空间命名空间命名空间命名空间类类类类类类1.2.1 命名空间命名空间l静态方法调用静态方法调用命名空间命名空间.命名空间命名空间.命名空间命名空间.类名类名.静态方法名(参数,静态方法名(参数,);u例如:例如:System.Console.WritleLineSystem.Console.WritleLine(”Hello World!”);Hello World!”);l实例方法调用实例方法调用实例化:实例化:u命名空间命名空间命名空间命名空间. .类名类名 = new = new 类名称(参数类名称(参数,) 方法调用:方法调用:u实例名实例名. .方法名(参数方法名(参数)例如:

15、例如:uSystem.Text.StringBuilder b = System.Text.StringBuilder b = newnew StringBuilder(); StringBuilder(); ub.Append(“abcd”);b.Append(“abcd”); 1.2.2 using关键字关键字lusing关键字关键字指定引用的命名空间,例如:指定引用的命名空间,例如:uusing System.Windows.Forms;using System.Windows.Forms;简化命名空间的层次表达形式,例如简化命名空间的层次表达形式,例如: uusing WinForm=

16、System.Windows.Form;using WinForm=System.Windows.Form;作为语句,定义一个范围。作为语句,定义一个范围。u程序执行到程序执行到“”时,就会自动释放时,就会自动释放usingusing后小括号中创建的对象后小括号中创建的对象u例如:例如:using(TextWriter w= File.CreateText(test.txt) w.WriteLine(Line one); w.WriteLine(Line two); w.WriteLine(Line three); 1.2.3 Main方法方法lMain方法要求方法要求应用程序入口方法名规定为

17、应用程序入口方法名规定为Main。必须声明为必须声明为public static返回值只能是返回值只能是void或者或者int。可以放在任何一个类中。可以放在任何一个类中。1.2.4 代码注释代码注释l常规注释方式常规注释方式单行注释:以单行注释:以“/”符号开始,任何位于符号开始,任何位于“/”符号后的本符号后的本行文字都视为注释行文字都视为注释块注释:以块注释:以“/*”开始,开始,“*/”结束。任何介于这对符号之结束。任何介于这对符号之间的文字块都视为注释。间的文字块都视为注释。lXML注释方式注释方式“/”符号是一种符号是一种XML注释方式注释方式在用户自定义的类型如类、接口、枚举等或

18、者在其成员上在用户自定义的类型如类、接口、枚举等或者在其成员上方,或者命名空间的声明上方连续键入方,或者命名空间的声明上方连续键入3个斜杠字符个斜杠字符可以在键入方法名和参数的过程中看到用可以在键入方法名和参数的过程中看到用XML注释的智能注释的智能提示。提示。1.2.5 通过断点调试通过断点调试C#程序程序l断点调试是编程人员必备素质!断点调试是编程人员必备素质!利用断点查找程序的逻辑错误,是常用的手段之一利用断点查找程序的逻辑错误,是常用的手段之一1设置和取消断点设置和取消断点u单击某代码行左边的灰色区域。单击设置,再单击某代码行左边的灰色区域。单击设置,再次单击取消设置。次单击取消设置。

19、u鼠标右击某代码行,选择【断点】鼠标右击某代码行,选择【断点】【插入断【插入断点】或者【删除断点】。点】或者【删除断点】。 u单击某代码行,直接按单击某代码行,直接按键进行设置或取消键进行设置或取消设置。设置。2利用断点调试程序利用断点调试程序u按按执行到断点,观察后再按执行到断点,观察后再按执行到下执行到下一断点一断点+键终止调试。键终止调试。 1.2.6 C#代码编写命名规范代码编写命名规范l类名、方法名和属性名全部使用类名、方法名和属性名全部使用Pascal命名法,即所有单词连命名法,即所有单词连写,每个单词的第一个字母大写,其他字母小写。例如写,每个单词的第一个字母大写,其他字母小写。

20、例如HelloWorld、GetData等。等。l变量名、一般对象名、控件对象名以及方法的参数名全部使用变量名、一般对象名、控件对象名以及方法的参数名全部使用Camel命名法,即所有单词连写,但是第一个单词全部小写,命名法,即所有单词连写,但是第一个单词全部小写,其他每个单词的第一个字母大写。例如:其他每个单词的第一个字母大写。例如:userName、userAge等。等。l如果是私有字段,为了和具有相同名字的属性名区分,私有的如果是私有字段,为了和具有相同名字的属性名区分,私有的字段名也可以用下划线(字段名也可以用下划线(“_”)开头,例如)开头,例如属性名为属性名为Age,私有字段名可以为

21、,私有字段名可以为age或者或者_Age。1.3 控制台应用程序控制台应用程序l1.3.1 控制台应用程序的输入与输出控制台应用程序的输入与输出l1.3.2 在控制台应用程序中输出格式化数据在控制台应用程序中输出格式化数据1.3.1 控制台应用程序的输入与输出控制台应用程序的输入与输出l控制台输出控制台输出Console.Write ();u把各种类型的数据或对象转换成字符串写入标准输出流把各种类型的数据或对象转换成字符串写入标准输出流Console.WriteLine();u与与WriteWrite的区别的区别:自动:自动输出回车输出回车、换行符(换行符(“rn”);rn”);例如例如int

22、 age = 18; int age = 18; string s = abc;string s = abc;Console.Write(age);Console.Write(age);Console.Write(s);Console.Write(s);Console.WriteLine(age);Console.WriteLine(age);Console.WriteLine(s);Console.WriteLine(s);1.3.1 控制台应用程序的输入与输出控制台应用程序的输入与输出l控制台输入控制台输入Console.ReadKey();u标准输入流读取用户按下的字符或功能键。标准输入

23、流读取用户按下的字符或功能键。u例如:例如:ConsoleKeyInfo c=Console.ReadKey()ConsoleKeyInfo c=Console.ReadKey();Console.ReadLine();u从标准输入流读取一行字符。例如:从标准输入流读取一行字符。例如: string s = Console.ReadLine();string s = Console.ReadLine();1.3.1 控制台应用程序的输入与输出控制台应用程序的输入与输出l快速键入快速键入C#代码代码方法方法1:连续按两次:连续按两次键键方法方法2:在要插入代码段的位置处,用鼠标右击选:在要插入代

24、码段的位置处,用鼠标右击选择择“外侧代码外侧代码”的办法插入代码段。的办法插入代码段。例如:例如:u键入键入“for”“for”三个字母后,连续按两次三个字母后,连续按两次键键,观察系统自动插入的代码段。,观察系统自动插入的代码段。1.3.2 在控制台应用程序中输出格式化数据在控制台应用程序中输出格式化数据l在在Console.Write和和Console.WriteLine方法中,可直接定义方法中,可直接定义数据转换为字符串后的输出格式数据转换为字符串后的输出格式Console.WriteLine(格式化表示格式化表示, 参数序列)参数序列);Console.Write(格式化表示格式化表示

25、, 参数序列)参数序列);例如:例如:int x=10, y=20, z=30;int x=10, y=20, z=30;/输出输出10+20+30=6010+20+30=60Console.WriteLine(0+1+2=3, x, y, z, x+y+z); Console.WriteLine(0+1+2=3, x, y, z, x+y+z); /输出输出60=20+30+1060=20+30+10Console.WriteLine(3=1+2+0, x, y, z, x+y+z); Console.WriteLine(3=1+2+0, x, y, z, x+y+z); 1.3.2 在控制

26、台应用程序中输出格式化数据在控制台应用程序中输出格式化数据N , M :格式码格式码 l格式化输出形式格式化输出形式N 从零开始的整数,表示第几个参数。从零开始的整数,表示第几个参数。M 可选参数,整数,表示最小长度。可选参数,整数,表示最小长度。u若参数若参数N N的长度小于的长度小于M M,就用空格填充;,就用空格填充;u如果如果M M为负,则左对齐;如果为负,则左对齐;如果M M为正,则右对齐;为正,则右对齐;格式码格式码可选参数,格式化代码样式。可选参数,格式化代码样式。u格式码:有默认位数,可用整数指定位数;格式码:有默认位数,可用整数指定位数;CC货币形式、货币形式、DD十进制形式

27、、十进制形式、FF固定精度形式、固定精度形式、EE指数指数形式、形式、NN用逗号分隔千位数字、用逗号分隔千位数字、PP百分比形式百分比形式、XX十六十六进制形式进制形式占位符:占位符:0强制占位符、强制占位符、#有效占位符有效占位符1.3.2 在控制台应用程序中输出格式化数据在控制台应用程序中输出格式化数据l利用利用string.Format方法格式化字符串方法格式化字符串先用先用String.Format方法拼接字符串,再用方法拼接字符串,再用WriteLine方法方法输出;输出;既可以在控制台应用程序中使用,也可以在其他应用程序既可以在控制台应用程序中使用,也可以在其他应用程序中(中(Wi

28、nForm、WPF等)使用。等)使用。例如:例如:int i = 123;int i = 123;/d6/d6表示不够表示不够6 6位左边补零位左边补零string s = string.Format(0:d6, i);string s = string.Format(0:d6, i);Console.WriteLine(s); Console.WriteLine(s); 1.3.2 在控制台应用程序中输出格式化数据在控制台应用程序中输出格式化数据l3利用利用ToString方法格式化字符串方法格式化字符串如果是一个变量,使用如果是一个变量,使用ToString方法更简单。方法更简单。Cons

29、ole、WinForm、WPF、Silverlight、ASP.NET等等应应用程序都可以利用用程序都可以利用string.Format方法或者方法或者ToString方法定方法定义数据的格式。义数据的格式。例如:例如:int n1 = 12;int n1 = 12;string s1 = n1.ToString(X4); /Xstring s1 = n1.ToString(X4); /X格式表示用十六进格式表示用十六进制输出。结果为:制输出。结果为:000C000Cstring s2 = n1.ToString(d5); /string s2 = n1.ToString(d5); /结果:结

30、果:00012000124控制台应用程序示例控制台应用程序示例l【例例1-1】 演示控制台应用程序的基本设计方法,以及如何在演示控制台应用程序的基本设计方法,以及如何在一个解决方案中包含多个应用程序项目。一个解决方案中包含多个应用程序项目。 Console.Write(请输入请输入x和和y(例如(例如12,15),然后按回车键:然后按回车键:); string s = Console.ReadLine(); string a = s.Split(,); int x = int.Parse(a0); int y = int.Parse(a1); int z = ClassLibraryExamp

31、le.MyClass.Multiplication(x, y); Console.WriteLine(x*y=0, z); Console.WriteLine(请按任意键结束程序。请按任意键结束程序。); Console.ReadKey();1.4 Windows窗体应用程序窗体应用程序l1.4.1 Windows窗体应用程序的特点窗体应用程序的特点l1.4.2 Windows窗体应用程序的启动和退出窗体应用程序的启动和退出l1.4.3 窗体的创建、显示、隐藏和关闭窗体的创建、显示、隐藏和关闭l1.4.4 消息框(消息框(MessageBox)l1.4.5 利用利用WinForm控件实现输入和

32、输出控件实现输入和输出l1.4.6 错误提示(错误提示(ErrorProvider)1.4.1 Windows窗体应用程序的特点窗体应用程序的特点lWindows窗体应用程序窗体应用程序是在是在Windows XP操作系统上开发客户端应用程序的主要开操作系统上开发客户端应用程序的主要开发模型,这种开发模型利用发模型,这种开发模型利用GDI+和操作系统交互。和操作系统交互。lWindows窗体应用程序现状窗体应用程序现状WinForm已有多年的历史,其技术高度成熟,如果开发不包含动已有多年的历史,其技术高度成熟,如果开发不包含动画、多媒体画、多媒体(音频视频)(音频视频)以及三维图形等高级功能的

33、程序,使用以及三维图形等高级功能的程序,使用WinForm应用程序可获得比较高的开发效率和运行性能。应用程序可获得比较高的开发效率和运行性能。1.4.1 Windows窗体应用程序的特点窗体应用程序的特点lGDI(Graphics Device Interface,图形设备接口),图形设备接口)是是Windows 2000操作系统内核提供的功能,提供二维图形和文操作系统内核提供的功能,提供二维图形和文本处理功能以及功能有限的图像处理功能本处理功能以及功能有限的图像处理功能没有三维图形和音频视频等多媒体处理功能。没有三维图形和音频视频等多媒体处理功能。随着随着Windows 2000操作系统退出

34、历史舞台,使用操作系统退出历史舞台,使用GDI技术的开技术的开发人员也越来越少。发人员也越来越少。lGDI+是是Windows XP操作系统内核提供的功能,在操作系统内核提供的功能,在GDI的基础上增加的基础上增加了一套基于了一套基于.NET框架的编程接口,从而让我们能使用框架的编程接口,从而让我们能使用C#快速实快速实现窗体界面绘制和绘图功能。现窗体界面绘制和绘图功能。GDI+没有没有GPU硬件加速功能,所有图形图像处理功能全部都是硬件加速功能,所有图形图像处理功能全部都是靠软件来实现。靠软件来实现。1.4.2 Windows窗体应用程序的启动和退出窗体应用程序的启动和退出l窗体应用程序的启

35、动和停止窗体应用程序的启动和停止使用使用Application类提供的静态方法来启动、停止应用程序类提供的静态方法来启动、停止应用程序Run方法:方法:u用于在当前线程上启动应用程序消息循环,并显示窗体。用于在当前线程上启动应用程序消息循环,并显示窗体。Exit方法:方法:u用于停止消息循环。用于停止消息循环。观察观察Program.cs中的中的Main方法。方法。1.4.3 窗体的创建、显示、隐藏和关闭窗体的创建、显示、隐藏和关闭l如何在代码中打开一个新窗体如何在代码中打开一个新窗体Form2 fm = new Form2(); fm.Show(); 或者或者Form2 fm = new F

36、orm2(); fm.ShowDialog();观察观察Show 与与ShowDialog之间的区别之间的区别l如何在代码中如何在代码中隐藏隐藏一个窗体一个窗体“无模式无模式”窗口窗口:调用调用Hide方法隐藏。方法隐藏。this.Hide();this.Hide();隐藏其他窗体可以调用实例名的隐藏其他窗体可以调用实例名的Hide方法,例如:方法,例如:umyForm.Hide();myForm.Hide();窗体隐藏后,其实例仍在,可重新调用窗体隐藏后,其实例仍在,可重新调用Show方法再次显示方法再次显示1.4.3 窗体的创建、显示、隐藏和关闭窗体的创建、显示、隐藏和关闭l如何在代码中关

37、闭一个窗体如何在代码中关闭一个窗体用法用法1:fm.Close();u关闭其他窗体关闭其他窗体用法用法2:this.Close();u关闭当前打开的窗体关闭当前打开的窗体用法用法3:Application.Exit();u不论当前窗体是哪个窗体,只要调用不论当前窗体是哪个窗体,只要调用ApplicationApplication的的ExitExit方法,方法,整个应用程序就会立即退出整个应用程序就会立即退出1.4.3 窗体的创建、显示、隐藏和关闭窗体的创建、显示、隐藏和关闭l4注册事件注册事件事件是响应用户操作的一种技术。事件是响应用户操作的一种技术。双击双击窗体设计界面窗体设计界面上的某上的

38、某控件,默认会自动注册最常用的控件,默认会自动注册最常用的事件事件(例如按钮的最常用事件是例如按钮的最常用事件是Click)。)。选择某个控件,单击选择某个控件,单击【属性属性】窗口中的窗口中的“雷电雷电”符号,符号,可可看到该控件对应的各种事件,双击指定的事件,可注册对应看到该控件对应的各种事件,双击指定的事件,可注册对应的事件的事件。在代码中通过在代码中通过“+=”注册指定的事件,通过注册指定的事件,通过“-=”注销指注销指定的事件。当熟悉代码后,这种办法是最灵活也是方便的办定的事件。当熟悉代码后,这种办法是最灵活也是方便的办法。法。1.4.3 窗体的创建、显示、隐藏和关闭窗体的创建、显示

39、、隐藏和关闭l【例例1-2】 演示演示Windows窗体应用程序的基本用法。窗体应用程序的基本用法。1.4.4 消息框(消息框(MessageBox)l消息框消息框显示消息对话框显示消息对话框可通过检查可通过检查Show方法返回的值来确定用户单击了哪个按钮方法返回的值来确定用户单击了哪个按钮l注意注意虽然用虽然用Show方法显示消息框,但由于它本身是模式窗口,方法显示消息框,但由于它本身是模式窗口,所以在消息框关闭前,不会执行它后面的代码。所以在消息框关闭前,不会执行它后面的代码。1.4.4 消息框(消息框(MessageBox)lMessageBox的的Show方法提供了多种重载形式,常用有

40、:方法提供了多种重载形式,常用有:public static DialogResult Show(string text)public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon)例如:例如:uMessageBox.Show (MessageBox.Show (输入的内容不正确输入的内容不正确););u消息框关闭后,返回值是消息框关闭后,返回值是DialogResultDialogResult枚举值之一。枚举值有:枚举值之一。枚举值有:N

41、oneNone(消息框未返回值)、(消息框未返回值)、OKOK、CancelCancel、YesYes和和NoNo1.4.4 消息框(消息框(MessageBox)lText:在消息框中显示的文本。在消息框中显示的文本。lcaption:在消息框的标题栏中显示的文本。在消息框的标题栏中显示的文本。lbuttons:MessageBoxButtons枚举值之一,指定在消息框中显示哪些按钮。枚枚举值之一,指定在消息框中显示哪些按钮。枚举值有举值有OK、OKCancel、YesNoCancel和和YesNo。licon:MessageBoxIcon枚举值之一,指定在消息框中显示哪个图标。枚举值枚举值

42、之一,指定在消息框中显示哪个图标。枚举值有有None(不显示图标)、(不显示图标)、Hand(手形)、(手形)、Question(问号)(问号).1.4.4 消息框(消息框(MessageBox)l【例例1-3】 演示消息框的基本用法。演示消息框的基本用法。1.4.5 利用利用WinForm控件实现输入和输出控件实现输入和输出l1分组(分组(Panel、GroupBox)Panel控件和控件和GroupBox控件均用于对控件进行分组控件均用于对控件进行分组不同之处:不同之处:Panel控件不能显示标题但可以有滚动条,而控件不能显示标题但可以有滚动条,而GroupBox控件可显示标题但不能显示滚

43、动条。控件可显示标题但不能显示滚动条。l2标签(标签(Label)和文本框()和文本框(TextBox)Label控件用于提供控件或窗体的描述性文字控件用于提供控件或窗体的描述性文字uTextText属性属性TextBox控件允许用户在应用程序中输入或编辑文本控件允许用户在应用程序中输入或编辑文本uReadOnlyReadOnly属性、属性、NameName属性、属性、PasswordCharPasswordChar、TextText1.4.5 利用利用WinForm控件实现输入和输出控件实现输入和输出l【例例1-4】 演示演示TextBox控件的基本用法。控件的基本用法。1.4.5 利用利用

44、WinForm控件实现输入和输出控件实现输入和输出l3复选框(复选框(CheckBox)和单选按钮()和单选按钮(RadioButton)CheckBoxu选择一个或者多个选项,每个选项一般用选中和非选中选择一个或者多个选项,每个选项一般用选中和非选中两种状态表示。两种状态表示。RadioButtonu一组一组RadioButtonRadioButton按钮中只能有一个处于选中状态。按钮中只能有一个处于选中状态。u一旦某一项被选中,同组中其他一旦某一项被选中,同组中其他RadioButtonRadioButton按钮的选中按钮的选中状态状态将将自动清除。自动清除。1.4.5 利用利用WinFo

45、rm控件实现输入和输出控件实现输入和输出l【例例1-5】 演示演示CheckBox控件和控件和RadioButton控件的基本用控件的基本用法。法。1.4.5 利用利用WinForm控件实现输入和输出控件实现输入和输出l列表(列表(ListBox)和下拉列表()和下拉列表(ComboBox)ListBox(列表框)控件和(列表框)控件和ComboBox(下拉框)控件均用(下拉框)控件均用于显示一组条目,以便操作者从中选择一条或者多条信息,于显示一组条目,以便操作者从中选择一条或者多条信息,并对其进行相应的处理并对其进行相应的处理两个控件的用法相似。两个控件的用法相似。常用属性和方法:常用属性和

46、方法:uSelectedIndexSelectedIndex属性:获取或设置当前选择项的索引序号属性:获取或设置当前选择项的索引序号uSelectedItemSelectedItem属性:获取或设置当前选择项的值。属性:获取或设置当前选择项的值。uCountCount属性:获取项的个数。属性:获取项的个数。uItems.AddItems.Add方法:添加项。方法:添加项。uItems.ClearItems.Clear方法:清除所有项。方法:清除所有项。uItems.RemoveAtItems.RemoveAt方法:删除指定的项。方法:删除指定的项。1.4.6 错误提示(错误提示(ErrorPr

47、ovider)lErrorProvider组件一般用于提示用户输入的信息有错误,利组件一般用于提示用户输入的信息有错误,利用该组件可在指定的控件(如文本框)旁显示一个闪烁的错误用该组件可在指定的控件(如文本框)旁显示一个闪烁的错误图标,当用户将鼠标指针放在闪烁的图标上时,会自动显示错图标,当用户将鼠标指针放在闪烁的图标上时,会自动显示错误信息。误信息。l【例例1-7】 演示演示ErrorProvider组件的基本用法。组件的基本用法。1.5 WPF和和Silverlight应用程序应用程序l1.5.1 WPF应用程序应用程序l1.5.2 Silverlight应用程序应用程序l1.5.3 其他

48、应用程序模板其他应用程序模板1.5 WPF和和Silverlight应用程序应用程序lWPF高效率运行动画、三维图形和音频视频等多媒体功能高效率运行动画、三维图形和音频视频等多媒体功能WinForm应用程序只能靠软件来实现,无法直接利用应用程序只能靠软件来实现,无法直接利用GPU的硬件加速功能的硬件加速功能WPF和和Silverlight最适用于开发在最适用于开发在Windows 7、Windows 8操作系统上运行的应用程序。操作系统上运行的应用程序。WPF适用于适用于C/S客户端开发,客户端开发,Silverlight适用于手机和适用于手机和Web富客户端开发。富客户端开发。WPF利用操作

49、系统底层支持的利用操作系统底层支持的DirectX实现硬件加速。实现硬件加速。1.5.1 WPF应用程序应用程序l1DirectX简介简介1995年,年,DirectX 1.0诞生诞生u它提供了直接读取图形硬件(显卡)的功能,但该版本它提供了直接读取图形硬件(显卡)的功能,但该版本还不包括还不包括3D3D功能。当时流行的编程接口是功能。当时流行的编程接口是OpenGLOpenGL,DirectX 1.0DirectX 1.0刚推出时,由于众多的硬件厂家均不支持刚推出时,由于众多的硬件厂家均不支持DirectXDirectX,该版本基本没有获得成功。,该版本基本没有获得成功。1996年,微软推出

50、年,微软推出DirectX 2.0。u该版本在该版本在DirectXDirectX中加入了中加入了Direct3DDirect3D,用于访问,用于访问3D3D硬件加硬件加速的高级图形功能,通过提供通用的速的高级图形功能,通过提供通用的COMCOM编程接口使硬件编程接口使硬件和设计完全分离。和设计完全分离。1.5.1 WPF应用程序应用程序l1DirectX简介简介1997年,微软推出年,微软推出DirectX 3.0。此时。此时3D游戏逐渐深入人心游戏逐渐深入人心不少显卡生产厂家开始支持不少显卡生产厂家开始支持DirectX,并陆续推出,并陆续推出3D图形加图形加速卡。随后微软直接推出速卡。随

51、后微软直接推出DirectX 5.0(没有出现(没有出现4.0版)版)5.0版的版的3D功能日益强大。使游戏中的功能日益强大。使游戏中的3D技术逐渐走入成熟阶技术逐渐走入成熟阶段。此时段。此时DirectX也得到了大多数知名厂商的认可和强力支也得到了大多数知名厂商的认可和强力支持。持。2001年,微软发布了年,微软发布了DirectX 8.02002年,微软发布年,微软发布DirectX 9.02006年,微软推出年,微软推出DirectX 10.0版版1.5.1 WPF应用程序应用程序l1DirectX简介简介2009年,微软推出多线程渲染的年,微软推出多线程渲染的DirectX 11.0。

52、该版本引入。该版本引入了了Shader Model 5.0,以便让,以便让GPU从事更多的通用计算工从事更多的通用计算工作,而不仅仅是作,而不仅仅是3D运算,从而鼓励开发人员更好地将运算,从而鼓励开发人员更好地将GPU作为并行处理器来使用。作为并行处理器来使用。随后,微软将随后,微软将DirectX作为作为Windows 7、Windows 8操作系操作系统底层默认的核心编程接口。统底层默认的核心编程接口。而对而对DirectX 11.0封装后的封装后的WPF和和HTML5的实现的实现,则同时则同时支持支持Windows 7和和Windows 8操作系统以及操作系统以及IE 9.0和和IE10.0浏览器浏览器【IE10.0正式版支持正式版支持Win7、Wi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论