第8章 Windows窗体应用程序设计0 (2).ppt
《第8章 Windows窗体应用程序设计0 (2).ppt》由会员分享,可在线阅读,更多相关《第8章 Windows窗体应用程序设计0 (2).ppt(182页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1第第8章章Windows窗体应用程序设计窗体应用程序设计28.1Windows编程的基础知识编程的基础知识 Windows窗体是制作标准Win32屏幕的一种更高级的方法,具有非常健全的功能。.NETFramework中的所有语言都使用Windows窗体来代替它们在图形窗体中所使用的组件。在.NET下,Windows窗体为所有的语言提供了一套丰富的、统一的控件和绘图功能,以及用于图形和绘图底层Windows服务的标准API。有了Windows窗体,任何图形和屏幕函数就不再需要使用内置的Windows图形接口了。Windows应用程序是运行在Windows操作系统中的单机程序或C/S结构的客户端
2、程序。包括两方面:1、Windows编程接口和类库2、Windows应用程序的基本结构1 Windows编程接口和类库 操作系统为了方便应用程序设计,一般都要提供一个函数库,设计应用程序的一些共用代码都包含在这个库中。程序员可以调用库中函数,以简化编程。APIMFC类库组件和组件库.NetFrameWork基础类库2 Windows应用程序的基本结构 Windows应用程序和控制台应用程序的基本结构类似,程序的执行总是从Main()方法开始,主函数Main()必须在一个类中。但Windows应用程序使用图形界面,一般有一个窗口(Form),采用事件驱动方式工作。最简单的最简单的WindowsW
3、indows应用程序如下:应用程序如下:using System;/using System;/引入命名空间引入命名空间using System.Windows.Forms;using System.Windows.Forms;public class Form1:Form /public class Form1:Form /类定义类定义 static void Main()/static void Main()/主函数主函数 Application.Run(new Form1();Application.Run(new Form1();(1 1)最简单的最简单的Windows应用程序应用程序
4、using System;using System.Windows.Forms;using System.Drawing;public class Form1:Form/构造函数 publicForm1()this.Text=我的第一个程序;button1=new Button();/生成Button类对象(2 2)窗体中增加按窗体中增加按钮钮(Button)(Button)控件控件的方法:的方法:Buttonbutton1;/生成Button类引用变量 /修改按钮位置 button1.Location=new Point(25,25);/修改button1按钮的标题 button1.Text
5、=“确定”;/button1_Click函数是按钮单击事件的单击事件处理函数 button1.Click+=new System.EventHandler(button1_Click);/按钮增加到窗体中并显示 this.Controls.Add(button1);(2 2)窗体中增加按窗体中增加按钮钮(Button)(Button)控件控件的方法:的方法:static void Main()Application.Run(new Form1();/下边函数是单击按钮事件处理函数 private void button1_Click(object sender,EventArgs e)/单击按
6、钮后执行的语句 this.button1.Text=“单击了我”;在窗体中增加控件类的对象的步骤:v定义Button类变量button1v在构造函数中用new生成Button类对象v在构造函数中修改button1的属性 v增加button1的事件处理函数 这些步骤对于增加任何控件都是相同的 结论:结论:3 用VS2005创建Windows应用程序【例】使用微软VS2005创建Windows应用程序的具体步骤如下:(1)运行VS2005程序,单击菜单“文件(F)|新建项目(P)”菜单项,打开“新建项目”对话框如下,单击“确定”按钮,创建项目。单击菜单单击菜单“文件文件(F F)|)|全部保存全部
7、保存(L L)”菜单项,菜单项,打开打开“保存保存项项目目”对话对话框框如下,按图中那样填写,第一项是项目名。如下,按图中那样填写,第一项是项目名。(2)单击“确定”按钮,保存解决方案的所有文件。打开如下对话框。解决方案包括一个项目,解决方案的所有文件都保存到WindowsApplication7文件夹下。在WindowsApplication7文件夹中下有1个文件夹WindowsApplication7和文件 WindowsApplication7.sln。打开WindowsApplication7文件夹,可以看到有3个文件夹和5个文件。(3)下边在窗体中增加一个按钮,并为按钮增加单击事件函
8、数。打开工具箱窗口,如下图。双击Button控件,Button控件将放到Form1窗体中。打开属性窗口,修改属性,打开事件窗口,增加事件。工具箱窗口工具箱窗口属性窗口属性窗口事件窗口事件窗口4方案(Solution)和项目(Project)一个应用(Application)可能包括一个或多个可执行程序,所有这些可执行程序的集合叫做一个应用解应用解决方案决方案。为了生成一个可执行程序,可能需要有一个或多个文件,所有这些文件的集合叫一个项目项目,因此项目是为了创建一个可执行程序所必需的所有的文件的集合。而一个方案中可能包括多个项目。解决方案资源管理器窗口可以为我们显示一个解决方案的树形结构,树形结
9、构中包含项目及项目中的文件。各个文件夹和文件的用途如下:v bin文件夹 -保存编译后的程序v obj文件夹 保存临时文件v Properties文件夹 v Form1.cs 窗体文件-窗体代码文件v Form1.Designer.cs 窗体设计文件v Program.CS 程序入口5WinForms程序文件夹及文件后缀名 PropertiesProperties文件夹文件夹 定义你程序集的属性项目属性文件夹一般只有一个AssemblyInfo.cs类文件,用于保存程序集的信息,如名称,版本等,这些信息一般与项目属性面板中的数据对应,不需要手动编写BinBin文件夹文件夹 目录用来保存项目生成
10、后程序集,它有Debug和Release两个版本,分别对应的文件夹为bin/Debug和bin/Release,这个文件夹是默认的输出路径,我们可以通过:项目属性配置属性输出路径来修改。文件夹文件夹 ObjObj文件夹文件夹 目录是用来保存每个模块的编译结果,在.NET中,编译是分模块进行的,编译整个完成后会合并为一个.DLL或.EXE保存到bin目录下。因为每次编译时默认都是采用增量编译,即只重新编译改变了的模块,obj保存每个模块的编译结果,用来加快编译速度。是否采用增量编译,可以通过:项目属性配置属性高级增量编译来设置。.sln 解解决决方方案案文文件件,为为解解决决方方案案资资源源管管
11、理理器器提提供供显显示管理文件的图形接口所需的信息。示管理文件的图形接口所需的信息。.csproj 项目文件,创建应用程序所需的引用、数据连项目文件,创建应用程序所需的引用、数据连接、文件夹和文件的信息。接、文件夹和文件的信息。.cs 类模块代码文件。业务逻辑处理层的代码。类模块代码文件。业务逻辑处理层的代码。文件文件designer.cs是窗体设计器生成的代码文件,作用是对窗体上的控件做初始化工作(在函数InitializeComponent()中)VS2003以前都把这部分代码放到窗体的cs文件中,由于这部分代码一般不用手工修改,在VS2005以后把它单独分离出来形成一个designer.
12、cs文件与窗体对应。这样cs文件中剩下的代码都是与程序功能相关性较高的代码利于维护。Form1.Designer.cs文件:文件:namespaceProj8_1partialclassForm1/必需的设计器变量。必需的设计器变量。/privateSystem.ComponentModel.IContainercomponents=null;/清理所有正在使用的资源。清理所有正在使用的资源。/如果应释放托管资源,为如果应释放托管资源,为true;/否则为否则为false。protectedoverridevoidDispose(booldisposing)/重写基类重写基类Dispose()
13、方法方法if(disposing&(components!=null)components.Dispose();base.Dispose(disposing);/调用基类的调用基类的Dispose()方法方法#regionWindows窗体设计器生成的代码窗体设计器生成的代码/设计器支持所需的方法设计器支持所需的方法-不要不要/使用代码编辑器修改此方法的内容。使用代码编辑器修改此方法的内容。/privatevoidInitializeComponent()/初始化方法初始化方法this.button1=newSystem.Windows.Forms.button();this.button2=
14、newSystem.Windows.Forms.button();this.SuspendLayout();/button1this.button1.Font=newSystem.Drawing.Font(宋体宋体,9F,System.Drawing.FontStyle.Bold,System.Drawing.GraphicsUnit.Point,(byte)(134);this.button1.Location=newSystem.Drawing.Point(28,21);this.button1.Name=button1;this.button1.Size=newSystem.Drawin
15、g.Size(117,33);this.button1.TabIndex=0;this.button1.Text=调用模式窗体调用模式窗体;this.button1.UseVisualStyleBackColor=true;this.button1.Click+=newSystem.EventHandler(this.button1_Click);/button2this.button2.Font=newSystem.Drawing.Font(宋体宋体,9F,System.Drawing.FontStyle.Bold,System.Drawing.GraphicsUnit.Point,(byt
16、e)(134);this.button2.Location=newSystem.Drawing.Point(28,69);this.button2.Name=button2;this.button2.Size=newSystem.Drawing.Size(117,33);this.button2.TabIndex=1;this.button2.Text=调用无模式窗体调用无模式窗体;this.button2.UseVisualStyleBackColor=true;this.button2.Click+=newSystem.EventHandler(this.button2_Click);/F
17、orm1this.AutoScaleDimensions=newSystem.Drawing.SizeF(6F,12F);this.AutoScaleMode=System.Windows.Forms.AutoScaleMode.Font;this.ClientSize=newSystem.Drawing.Size(169,128);this.Controls.Add(this.button2);this.Controls.Add(this.button1);this.Name=Form1;this.StartPosition=System.Windows.Forms.FormStartPos
18、ition.CenterScreen;this.Text=Form1;this.ResumeLayout(false);/STAThreadSTAThread 是一种线程模型,用在程序的入口方法上(在是一种线程模型,用在程序的入口方法上(在C#C#和和VB.NETVB.NET里是里是MainMain()()方法),指示应用程序的默认线程模型是单线程单元方法),指示应用程序的默认线程模型是单线程单元 (STA)(STA)。是是STASTA。STAThreadSTAThread static void Main()static void Main()/程序运行在程序运行在XPXP环境中能自动应用环
19、境中能自动应用XPXP的主题样式的主题样式 Application.EnableVisualStyles();Application.EnableVisualStyles();/使用使用GDIGDI还是,还是,falsefalse是是 GDI+GDI+,truetrue是是 GDIGDI Application.SetCompatibleTextRenderingDefault(Application.SetCompatibleTextRenderingDefault(false);false);/运行启动窗体运行启动窗体 Application.Run(Application.Run(new
20、 new Form1();Form1();Program.CS1、为什么要使用窗体、为什么要使用窗体简单强大方便灵活8.2Windows窗体概述窗体概述2什么是窗体什么是窗体Windows操作系统中,处处是窗体3、怎样创建、怎样创建Windows程序程序在VS中创建Windows应用程序的步骤:1、打开VS2、新建项目3、项目类型:VisualC#项目4、模板:Windows应用程序4、认识、认识WinForms项目名称项目名称主程序文件,主程序文件,包含包含Main方法方法我们编写代码的文件我们编写代码的文件解决方案名称解决方案名称窗体设计器代码文件,窗体设计器代码文件,代码为代码为VS自动
21、生成自动生成5、Main方法方法位于Program.cs文件Windows程序的入口/Program.csnamespaceMyFormstaticclassProgram.staticvoidMain()Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(newForm1();Main方法方法,程序的入口程序的入口VS自动生成自动生成一般不需要理会一般不需要理会6、进一步认识窗体文件、进一步认识窗体文件WinForms窗体有两种编辑窗口:窗体
22、设计器窗口窗体设计器窗口窗体代码编辑窗口窗体代码编辑窗口7、为什么使用、为什么使用partial具有双钥匙的密码箱具有双钥匙的密码箱第一把钥匙第一把钥匙第二把钥匙第二把钥匙为了安全,两把钥匙分开放置为了安全,两把钥匙分开放置只有两把钥匙同时使用才能打开密码箱只有两把钥匙同时使用才能打开密码箱用用partial将将同一个窗体同一个窗体的代码分开放在的代码分开放在两个文件两个文件中:中:一个存放一个存放VS自动生成的代码自动生成的代码一个存放我们自己编写的代码一个存放我们自己编写的代码程序员编写的代码程序员编写的代码VS自动生成的代码自动生成的代码/Form1.Designer.csnamespa
23、ceMyFormpartialclassForm1/privatevoidInitializeComponent()/VS自动生成的代码自动生成的代码this.ShowInTaskbar=false;this.Name=Form1;this.Text=Form1;this.TopMost=true;运行时运行时合到一起合到一起组成一个窗体文件组成一个窗体文件8、怎样使用、怎样使用partial/Form1.csnamespaceMyFormpublicpartialclassForm1:FormpublicForm1()InitializeComponent();/我们编写的代码我们编写的代码
24、构造函数构造函数做一些初始化的工作做一些初始化的工作编译器自动调用编译器自动调用9、认识窗体类、认识窗体类/Form1.csnamespaceMyFormpublicpartialclassForm1:FormpublicForm1()InitializeComponent();冒号表示继承冒号表示继承Form类定义了窗体的基本属类定义了窗体的基本属性和行为性和行为我们创建的窗体都继承自我们创建的窗体都继承自Form类类Form1具有相应的属性和行为具有相应的属性和行为Form类:.NET预定义的窗体类Form1继承自Form10、窗体的重要属性、窗体的重要属性Name:窗体对象的名字,类似于
25、变量的名字窗体对象的名字,类似于变量的名字BackColor:窗体的背景色窗体的背景色ShowInTaskBar:设置窗体是否出现在任务栏设置窗体是否出现在任务栏StartPosition:窗体第一次出现时的位置:窗体第一次出现时的位置Text:窗体标题栏显示的文字窗体标题栏显示的文字TopMost:设置窗体是否为最顶端的窗体设置窗体是否为最顶端的窗体WindowState:窗体出现时最初的状态(正常、最大化、最小化)窗体出现时最初的状态(正常、最大化、最小化)11、为什么使用事件、为什么使用事件Windows系统中处处是事件:鼠标按下、鼠标释放、键盘键按下Windows系统通过事件处理来响应
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第8章 Windows窗体应用程序设计0 2 Windows 窗体 应用 程序设计
限制150内