第2章 Visual Studio 集成开发环境 Visual C#.NET 程序设计 第2章 Visual Studio 集成开发环境 2017/3/22
学习和实践的目标 通过一个简单的Hello项目的创建和程序结构的分析,熟悉Visual Studio 2010的操作界面和常用工具窗口,为“学生成绩管理系统”项目的开发打下基础。。 2017/3/22
实现目标的知识点 Visual Studio操作界面。 Visual Studio常用工具。 程序结构和文件类型。 项目和解决方案。 命名空间。 帮助系统。 2017/3/22
2.1 实现目标的步骤 熟悉Visual Studio 2010 (简称VS 2010)集成开发环境(以下简称IDE)的步骤如图2-1所示。 2.1 实现目标的步骤 熟悉Visual Studio 2010 (简称VS 2010)集成开发环境(以下简称IDE)的步骤如图2-1所示。 图2-1 2017/3/22
2.2 创建一个简单的C#项目 Visual Studio 2010是 Microsoft的第二代开发工具Visual Studio.NET的一个版本,用于快速构建和部署功能强大而安全的.NET应用程序。 它为C#.NET、Visual Basic.NET和Visual C++.NET等提供了统一的IDE,在该IDE中可以共享工具和创建混合语言解决方案。 2017/3/22
2.2 创建一个简单的C#项目 2.2.1 Visual Studio的启动 单击Windows任务栏上的【开始】按钮,选择【程序】|【Microsoft Visual Studio 2010】|【Microsoft Visual Studio 2010】命令,会显示如图2-2所示的“起始页”。它是集成开发环境中默认的浏览器主页。 2017/3/22 图2-2
2.2 创建一个简单的C#项目 2.2.2 Visual Studio常用工具 Visual Studio IDE除了有Microsoft应用软件常见的标题栏、菜单栏和工具栏外,还有工具箱、解决方案资源管理器窗口、属性窗口和输出窗口等。 若有些窗口在IDE中没有显示,则可以选择菜单栏中【视图】下的相应子菜单,打开相应的窗口。 如:选择【视图】| 【服务器资源管理器】,打开服务器资源管理器窗口;选择【视图】| 【对象浏览器】,打开对象浏览器窗口;选择【视图】|【其他窗口】|【类视图】,打开“类视图”窗口等 2017/3/22
2.2 创建一个简单的C#项目 2.2.2 Visual Studio常用工具 1.窗口的布局 2.设计器 3.工具箱 4.解决方案资源管理器 5.“属性”窗口 6.“类视图”窗口 7.“对象浏览器”窗口 8.“命令”窗口 2017/3/22
2.2 创建一个简单的C#项目 2.2.3 项目的外观配置 在图2-4所示的Form1窗体中添加控件,最终的Hello窗体如图2-15所示。 1.添加和排列控件 (1)使用对齐线排列控件 (2)使用菜单命令排列控件 2.设置对象的属性 图2-15 2017/3/22
2.3 Windows窗体应用程序框架 当创建好Hello项目后,IDE就自动为项目创建了一个Windows窗体应用程序框架。 这个框架包含了一些必要的文件, 有Program.cs、Form1.cs和Form1.Designer.cs文件, 如图2-8所示。 2017/3/22
2.3 Windows窗体应用程序框架 2.3.1 Windows窗体应用程序框架代码 当创建好一个Visual Studio项目,IDE自动为我们创建了一个如图2-4所示的窗体,这个窗体对应的文件就是Form1.Designer.cs,其代码结构如右图所示: 2017/3/22
2.3 Windows窗体应用程序框架 2.3.1 Windows窗体应用程序框架代码 2017/3/22
2.3 Windows窗体应用程序框架 2.3.1 Windows窗体应用程序框架代码 上述代码中包含了一个InitializeCompnent()方法,在这个方法中,创建了窗体中使用到的各个控件类的对象和该对象的一些属性的设置。 2017/3/22
2.3 Windows窗体应用程序框架 2.3.1 Windows窗体应用程序框架代码 C#应用程序都是从Program类开始运行的,该类的源文件Program.cs的代码结构如下: 2017/3/22
2.3 Windows窗体应用程序框架 2.3.1 Windows窗体应用程序框架代码 其中的static void Main()是程序的入口方法,这是类中的一个静态方法,对Windows应用程序来说,首先会从这个方法开始执行程序。 Main 函数的第一行语句是 Application.EnableVisualStyles() ,为应用程序启用可视样式。如果控件和操作系统支持视觉样式,则控件将以视觉样式进行绘制。必须在应用程序中创建任何控件之前调用它。 2017/3/22
2.3 Windows窗体应用程序框架 2.3.1 Windows窗体应用程序框架代码 Application.SetCompatibleTextRenderingDefault(false)语句使Windows 窗体控件可以使用更新的图形类(GDI+)来呈现其文本。 当执行到Application.Run(new Form1())语句时,程序自动执行Form1类中的构造函数Form1(),输出如图2-15所示的窗体。 2017/3/22
2.3 Windows窗体应用程序框架 2.3.2 命名空间 .NET基础框架提供了一个庞大的类库,该类库提供了在应用程序设计中所需的大部分功能。同时,根据应用程序开发的需要,可创建具有特定功能的自定义的新类。 为了更方便地管理众多的这些类,.NET提出了一个“命名空间”(namespace)的概念,也就是面向对象体系中提到的包的概念,通过它将系统中大量的类库有序地组织起来,使得类的管理和组织更加容易。 2017/3/22
2.3 Windows窗体应用程序框架 2.3.2 命名空间 可以将命名空间看成文件夹,将类看成是文件夹中的文件,利用命名空间管理类就像是利用文件夹管理文件一样,这毫无疑问的提高了类的管理和使用效率。在同一个命名空间中,所有的类都是独立唯一的。 创建了C#应用程序后,IDE会自动引入常用的命名空间,同时自动声明应用程序默认的命名空间,其名称就是C#项目的名称,如namespace Hello,表示项目Hello中的命名空间就是项目名Hello。当然,也可以将这个命名空间Hello换为其他的名称。 2017/3/22
2.3 Windows窗体应用程序框架 2.3.2 命名空间 1.命名空间的使用 2.3.2 命名空间 1.命名空间的使用 使用命名空间的目的是为了有效地访问其中的类,一般有以下的几种方法: (1)直接使用命名空间 在应用程序中可直接通过命名空间使用类,如: System.Data.DataSet ds内存; //声明DataSet类的对象ds内存 ds内存=new System.Data.DataSet(); //创建DataSet类的对象ds内存 2017/3/22
2.3 Windows窗体应用程序框架 2.3.2 命名空间 1.命名空间的使用 (2)使用using关键字 2.3.2 命名空间 1.命名空间的使用 (2)使用using关键字 应用程序中,如果需要大量使用某命名空间中的类时,那么可以直接利用using关键字在当前程序开始处引入该命名空间,其语法格式为: using 命名空间名称; 如Form1.cs中的using语句: using System; //表示引入基本类的命名空间 using System .Collections.Generic; //表示引入泛型集合的接口和类的命名空间 2017/3/22
2.3 Windows窗体应用程序框架 2.3.2 命名空间 2.命名空间的创建 2.3.2 命名空间 2.命名空间的创建 C#中除了系统自动引入程序需要的命名空间和创建自动声明的默认的命名空间外,用户还可以根据实际需要自定义命名空间,其语法格式为: namespace 命名空间名称 { … } 2017/3/22
2.3 Windows窗体应用程序框架 2.3.3 分布式类 分布式类是.NET 2.0中新引入的类的组织形式。 2.3.3 分布式类 分布式类是.NET 2.0中新引入的类的组织形式。 目的是为了解决一个功能复杂的类可能因为拥有大量的字段、属性、事件和方法,甚至还可能包括大量的嵌套成员时,造成文件过于庞大、代码行数过多,以致于难以理解和调试的这种局面。 2017/3/22
2.3 Windows窗体应用程序框架 2.3.3 分布式类 在分布式类中,允许将类的定义分散到多个代码片断中,而这些代码片断又可以存放到两个或两个以上的源文件中,每个文件只包含类定义的一部分。 只要在各个文件中使用相同的命名空间、相同的类名,并且在每个类的定义前都加上partial修饰符时,那么编译器就会自动将这些文件编译到一起,形成一个完整的类。 2017/3/22
2.3 Windows窗体应用程序框架 2.3.4 项目的事件驱动编程 完成了人机交互界面之后还需要进行人机交互编程,以实现人机交互行为。 2.3.4 项目的事件驱动编程 完成了人机交互界面之后还需要进行人机交互编程,以实现人机交互行为。 选中图2-15窗体上的“问候”按钮,在对应的“属性”窗口中单击事件按钮,会显示与该按钮相关的事件,如Click(单击控件时发生)、MouseEnter(鼠标指针移入控件时发生)、MouseDown(鼠标指针位于控件上并按下鼠标键时发生)、MouseUp(鼠标指针在控件上并释放鼠标键时发生)等事件。 2017/3/22
2.3 Windows窗体应用程序框架 2.3.4 项目的事件驱动编程 2.3.4 项目的事件驱动编程 双击属性窗口中的MouseEnter事件,则自动产生“btn问候_MouseEnter”的事件函数,“代码”窗口如图2-21所示。 图2-21 2017/3/22
2.3 Windows窗体应用程序框架 2.3.4 项目的事件驱动编程 (1)窗口中的下拉列表项 2.3.4 项目的事件驱动编程 (1)窗口中的下拉列表项 窗口左上方的下拉列表框中显示的是命名空间中的类,如Hello.Form1,右上方的下拉列表中将显示Form1类中包含的属性、事件和方法等,如图2-22所示。 单击图2-22下拉列表中的任何一项,就会立即转到与该项有关的代码处。 图2-22 2017/3/22
2.3 Windows窗体应用程序框架 2.3.4 项目的事件驱动编程 (2)添加代码 2.3.4 项目的事件驱动编程 (2)添加代码 在图2-21所示“btn问候_MouseEnter(object sender, EventArgs e)”的事件函数处,添加如下代码: private void btn问候_MouseEnter(object sender, EventArgs e) { MessageBox.Show("Hello," + textBox1.Text + "\n你的学号是" + textBox2.Text); } 2017/3/22
2.3 Windows窗体应用程序框架 2.3.4 项目的事件驱动编程 (3)保存并运行程序 2.3.4 项目的事件驱动编程 (3)保存并运行程序 选择【文件】|【全部保存】命令,弹出“保存项目”对话框,在该对话框中输入项目保存的位置,则将项目中的全部文件保存到指定的位置。 选择【调试】|【启动】命令,或者单击工具栏上的【启动】按钮,或者按F5快捷键,运行应用程序。分别在“姓名”和“学号”文本框中输入值,然后,鼠标移到“问候”按钮上,则以消息框的形式显示相关的信息。程序运行结果如图2-23所示。 图2-23 2017/3/22
2.3 Windows窗体应用程序框架 2.3.5 项目的类关系图 2.3.5 项目的类关系图 Hello项目开发完毕,可以通过类关系图,清楚的查看项目中的类、类与类之间的关系、类所包含的字段、属性和方法等。 2017/3/22
2.3 Windows窗体应用程序框架 2.3.5 项目的类关系图 2.3.5 项目的类关系图 在解决方案资源管理器窗口中,右击Hello项目名,在弹出的菜单中,单击【查看类关系图】命令,即在解决方案资源管理器中增加了一个ClassDiagram1.cd的文件,同时打开了Hello项目的类关系图,如图2-24所示。 图2-24 2017/3/22
2.4 使用帮助系统 .NET是一个庞大的体系,内容十分丰富。MSDN Library为用户提供了Visual Studio开发环境、.NET语言类库的全部信息,以及大量的示例程序代码等。当遇到问题的时候,可以随时查阅。 掌握并善于利用Visual Studio的帮助系统对编程人员来说,是十分必要和重要的。 Visual Studio的帮助文档“MSDN Library For Visual Studio.net 2010”是在安装过程中单独安装上的,若没有安装,动态帮助窗口将不会显示任何主题。 2017/3/22
2.4 使用帮助系统 1.动态帮助窗口 单击【帮助】|【动态帮助】命令,打开“动态帮助”窗口,这是一个与上下文相关的帮助系统。当选中窗体上不同的控件,或选中代码中的关键字时,“动态帮助”窗口中的显示内容会随之发生变化。 如图2-25所示的“动态帮助”窗口,当鼠标驻留在MessageBox上时,窗口立即显示了相应的帮助信息:“如何:显示消息框”、“MessageBox成员”和“MessageBox类”,打开链接后,就可以查阅它们具体的使用方法。 2017/3/22
2.4 使用帮助系统 1.动态帮助窗口 图2-25 动态帮助窗口 2017/3/22
2.4 使用帮助系统 2.使用MSDN Library 选择【帮助】菜单中的相应命令,如【搜索】、【目录】和【索引】等,可以调出MSDN。 2.4 使用帮助系统 2.使用MSDN Library 选择【帮助】菜单中的相应命令,如【搜索】、【目录】和【索引】等,可以调出MSDN。 (1)搜索 (2)目录 (3)索引 2017/3/22
习题 一、简答题 1.创建一个C#应用程序一般需要哪些步骤? 2.请描述解决方案与项目之间的关系。 3.除了利用菜单命令【视图】|【工具箱】,能够在Visual Studio IDE中打开工具箱窗口外,还可以通过何种方式打开工具箱窗口? 4.请描述出Hello项目的运行流程? 2017/3/22
习题 二、操作题 1.利用帮助系统搜索出“类视图”和“对象浏览器”中的图标的样式及含义。 2.请仔细体会分布式类的作用,并创建一个包含有自定义的分布式类的程序。 3.请利用按钮的Click事件(单击按钮的产生的事件),完成本章中Hello项目的消息框的输出。 2017/3/22