第8章 Windows窗体应用程序设计_第1页
第8章 Windows窗体应用程序设计_第2页
第8章 Windows窗体应用程序设计_第3页
第8章 Windows窗体应用程序设计_第4页
第8章 Windows窗体应用程序设计_第5页
已阅读5页,还剩178页未读, 继续免费阅读

下载本文档

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

文档简介

1、1第第8章章Windows窗体应用程序设计窗体应用程序设计28.1 Windows编程的基础知识编程的基础知识 Windows窗体是制作标准Win32屏幕的一种更高级的方法,具有非常健全的功能。.NET Framework中的所有语言都使用Windows窗体来代替它们在图形窗体中所使用的组件。在.NET下,Windows窗体为所有的语言提供了一套丰富的、统一的控件和绘图功能,以及用于图形和绘图底层Windows服务的标准API。有了Windows窗体,任何图形和屏幕函数就不再需要使用内置的Windows图形接口了。 Windows应用程序是运行在Windows操作系统中的单机程序或C/S结构的

2、客户端程序。包括两方面: 1、 Windows编程接口和类库 2、 Windows应用程序的基本结构 1 Windows编程接口和类库 操作系统为了方便应用程序设计,一般都要提供一个函数库,设计应用程序的一些共用代码都包含在这个库中。程序员可以调用库中函数,以简化编程。 API MFC类库 组件和组件库 .Net FrameWork基础类库 2 Windows应用程序的基本结构 Windows应用程序和控制台应用程序的基本结构类似,程序的执行总是从Main()方法开始,主函数Main()必须在一个类中。但Windows应用程序使用图形界面,一般有一个窗口(Form),采用事件驱动方式工作。 最

3、简单的最简单的WindowsWindows应用程序如下:应用程序如下: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) 最

4、简单的最简单的Windows应用程序应用程序 using System;using System.Windows.Forms;using System.Drawing;public class Form1:Form/构造函数 public Form1() this.Text=我的第一个程序; button1=new Button();/生成Button类对象 (2 2)窗体中增加按钮)窗体中增加按钮(Button)(Button)控件的方法:控件的方法: Button button1;/生成Button类引用变量 /修改按钮位置 button1.Location=new Point(25,25

5、); /修改button1按钮的标题 button1.Text=“确定”; /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 button

6、1_Click(object sender, EventArgs e) /单击按钮后执行的语句 this.button1.Text=“单击了我”; 在窗体中增加控件类的对象的步骤:v定义Button类变量button1v在构造函数中用new生成Button类对象v在构造函数中修改button1的属性 v增加button1的事件处理函数 这些步骤对于增加任何控件都是相同的 结论:结论:3 用VS2005创建Windows应用程序 【例】使用微软VS2005创建Windows应用程序的具体步骤如下:(1)运行VS2005程序,单击菜单“文件(F)|新建项目(P)”菜单项,打开“新建项目”对话框如下

7、,单击“确定”按钮,创建项目。 单击菜单单击菜单“文件文件( (F F)|)|全部保存全部保存( (L L) )”菜单项,菜单项,打开打开“保存项目保存项目”对对话框如下,按图中那样填写,第一项是项目名。话框如下,按图中那样填写,第一项是项目名。 (2)单击“确定”按钮,保存解决方案的所有文件。打开如下对话框。解决方案包括一个项目,解决方案的所有文件都保存到WindowsApplication7文件夹下。在WindowsApplication7文件夹中下有1个文件夹WindowsApplication7和文件 WindowsApplication7.sln。打开WindowsApplicati

8、on7文件夹,可以看到有3个文件夹和5个文件。 (3)下边在窗体中增加一个按钮,并为按钮增加单击事件函数。打开工具箱窗口,如下图。双击Button控件,Button控件将放到Form1窗体中。打开属性窗口,修改属性,打开事件窗口,增加事件。 工具箱窗口工具箱窗口 属性窗口属性窗口 事件窗口事件窗口 4 方案(Solution)和项目(Project) 一个应用(Application)可能包括一个或多个可执行程序,所有这些可执行程序的集合叫做一个应用解应用解决方案决方案。 为了生成一个可执行程序,可能需要有一个或多个文件,所有这些文件的集合叫一个项目项目,因此项目是为了创建一个可执行程序所必需

9、的所有的文件的集合。而一个方案中可能包括多个项目。解决方案资源管理器窗口可以为我们显示一个解决方案的树形结构,树形结构中包含项目及项目中的文件。 各个文件夹和文件的用途如下:v bin文件夹 -保存编译后的程序v obj文件夹 保存临时文件v Properties文件夹 v Form1.cs 窗体文件-窗体代码文件v Form1.Designer.cs 窗体设计文件v Program.CS 程序入口5 Win Forms程序文件夹及文件后缀名 PropertiesProperties文件夹文件夹 定义你程序集的属性 项目属性文件夹 一般只有一个 AssemblyInfo.cs 类文件,用于保存

10、程序集的信息,如名称,版本等,这些信息一般与项目属性面板中的数据对应,不需要手动编写 BinBin文件夹文件夹 目录用来保存项目生成后程序集,它有Debug和Release两个版本,分别对应的文件夹为bin/Debug和bin/Release,这个文件夹是默认的输出路径,我们可以通过:项目属性配置属性输出路径来修改。 文件夹文件夹 ObjObj文件夹文件夹 目录是用来保存每个模块的编译结果,在.NET中,编译是分模块进行的,编译整个完成后会合并为一个.DLL或.EXE保存到bin目录下。因为每次编译时默认都是采用增量编译,即只重新编译改变了的模块,obj保存每个模块的编译结果,用来加快编译速度

11、。是否采用增量编译,可以通过:项目属性配置属性高级增量编译来设置。.sln 解决方案文件,为解决方案资源管理器提供显解决方案文件,为解决方案资源管理器提供显示管理文件的图形接口所需的信息。示管理文件的图形接口所需的信息。 .csproj 项目文件,创建应用程序所需的引用、数据连项目文件,创建应用程序所需的引用、数据连接、文件夹和文件的信息。接、文件夹和文件的信息。 .cs 类模块代码文件。业务逻辑处理层的代码。类模块代码文件。业务逻辑处理层的代码。文件文件designer.cs 是窗体设计器生成的代码文件,作用是对窗体上 的 控 件 做 初 始 化 工 作 ( 在 函 数InitializeC

12、omponent()中)VS2003以前都把这部分代码放到窗体的cs文件中,由于这部分代码一般不用手工修改,在VS2005以后把它单独分离出来形成一个designer.cs文件与窗体对应。这样cs文件中剩下的代码都是与程序功能相关性较高的代码利于维护。Form1.Designer.cs 文件:文件:namespace Proj8_1 partial class Form1 / /必需的设计器变量。必需的设计器变量。 / private System.ComponentModel.IContainer components = null; / /清理所有正在使用的资源。清理所有正在使用的资源。

13、/ /如果应释放托管资源,为如果应释放托管资源,为true;/否则为否则为false。 protected override void Dispose(bool disposing)/重写基类重写基类Dispose()方法方法 if (disposing & (components != null) components.Dispose(); base.Dispose(disposing); /调用基类的调用基类的Dispose()方法方法 #region Windows 窗体设计器生成的代码窗体设计器生成的代码 / /设计器支持所需的方法设计器支持所需的方法 - 不要不要 /使用代码

14、编辑器修改此方法的内容。使用代码编辑器修改此方法的内容。 / private void InitializeComponent()/初始化方法初始化方法 this.button1 = new System.Windows.Forms.button(); this.button2 = new System.Windows.Forms.button(); this.SuspendLayout(); / button1 this.button1.Font = new System.Drawing.Font(宋体宋体, 9F, System.Drawing.FontStyle.Bold, System

15、.Drawing.GraphicsUnit.Point, (byte)(134); this.button1.Location = new System.Drawing.Point(28, 21); this.button1.Name = button1; this.button1.Size = new System.Drawing.Size(117, 33); this.button1.TabIndex = 0; this.button1.Text = 调用模式窗体调用模式窗体; this.button1.UseVisualStyleBackColor = true; this.button

16、1.Click += new System.EventHandler(this.button1_Click); / button2 this.button2.Font = new System.Drawing.Font(宋体宋体, 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (byte)(134); this.button2.Location = new System.Drawing.Point(28, 69); this.button2.Name = button2; this.button2.S

17、ize = new System.Drawing.Size(117, 33); this.button2.TabIndex = 1; this.button2.Text = 调用无模式窗体调用无模式窗体; this.button2.UseVisualStyleBackColor = true; this.button2.Click += new System.EventHandler(this.button2_Click);/ Form1 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMo

18、de = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(169, 128); this.Controls.Add(this.button2); this.Controls.Add(this.button1); this.Name = Form1; this.StartPosition =System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = Form1; this.ResumeLayout(false)

19、;/ / STAThreadSTAThread是一种线程模型,用在程序的入口方法上(在是一种线程模型,用在程序的入口方法上(在C#C#和和VB.NETVB.NET里是里是Main()Main()方法),指示应用程序的默认线程模型是单线程单元方法),指示应用程序的默认线程模型是单线程单元 (STA)(STA)。是是STASTA。 STAThreadSTAThread static void Main()static void Main() /程序运行在程序运行在XPXP环境中能自动应用环境中能自动应用XPXP的主题样式的主题样式 Application.EnableVisualStyles();

20、Application.EnableVisualStyles(); / /使用使用GDIGDI还是,还是,falsefalse是是 GDI+ GDI+ ,truetrue是是 GDIGDI Application.SetCompatibleTextRenderingDefault(Application.SetCompatibleTextRenderingDefault(false);false); / /运行启动窗体运行启动窗体 Application.Run(Application.Run(new new Form1();Form1(); Program.CS1、为什么要使用窗体、为什么要

21、使用窗体简单强大方便灵活8.2 Windows窗体概述窗体概述2 什么是窗体什么是窗体 Windows 操作系统中,处处是窗体3、怎样创建、怎样创建 Windows 程序程序在 VS 中创建 Windows 应用程序的步骤:1、打开 VS 2、新建项目3、项目类型:Visual C# 项目4、模板:Windows 应用程序4、认识、认识 WinForms项目名称项目名称主程序文件,主程序文件,包含包含Main方法方法我们编写代码的文件我们编写代码的文件解决方案名称解决方案名称窗体设计器代码文件,窗体设计器代码文件,代码为代码为VS自动生成自动生成5、Main 方法方法 位于 Program.c

22、s 文件 Windows程序的入口/ Program.cs namespace MyForm static class Program . static void Main( ) Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1(); Main 方法方法,程序的入口程序的入口VS 自动生成自动生成一般不需要理会一般不需要理会6、进一步认识窗体文件、进一步认识窗体文件 WinForms 窗体有两种编辑窗口:窗体设计器窗口

23、窗体设计器窗口窗体代码编辑窗口窗体代码编辑窗口7、为什么使用、为什么使用partial具有双钥匙的密码箱具有双钥匙的密码箱 第一把钥匙第一把钥匙 第二把钥匙第二把钥匙 为了安全,两把钥匙分开放置为了安全,两把钥匙分开放置 只有两把钥匙同时使用才能打开密码箱只有两把钥匙同时使用才能打开密码箱 用用 partial 将将同一个窗体同一个窗体的代码分开放在的代码分开放在两个文件两个文件中:中:一个存放一个存放 VS 自动生成的代码自动生成的代码一个存放我们自己编写的代码一个存放我们自己编写的代码 程序员编写的代码程序员编写的代码 VS自动生成的代码自动生成的代码 / Form1.Designer.c

24、snamespace MyForm partial class Form1 / private void InitializeComponent() / VS自动生成的代码自动生成的代码 this.ShowInTaskbar = false; this.Name = Form1; this.Text = Form1; this.TopMost = true; 运行时运行时合到一起合到一起组成一个窗体文件组成一个窗体文件8、怎样使用、怎样使用partial/ Form1.cs namespace MyForm public partial class Form1 : Form public Fo

25、rm1() InitializeComponent(); / 我们编写的代码我们编写的代码 构造函数构造函数做一些初始化的工作做一些初始化的工作编译器自动调用编译器自动调用9、认识窗体类、认识窗体类/ Form1.cs namespace MyForm public partial class Form1 : Form public Form1() InitializeComponent(); 冒号表示继承冒号表示继承Form类定义了窗体的基本属类定义了窗体的基本属性和行为性和行为我们创建的窗体都继承自我们创建的窗体都继承自Form类类Form1具有相应的属性和行具有相应的属性和行为为 For

26、m 类:.NET 预定义的窗体类 Form1 继承自 Form10、窗体的重要属性、窗体的重要属性Name :窗体对象的名字,类似于变量的名字窗体对象的名字,类似于变量的名字 BackColor :窗体的背景色窗体的背景色 ShowInTaskBar :设置窗体是否出现在任务栏设置窗体是否出现在任务栏 StartPosition :窗体第一次出现时的位置:窗体第一次出现时的位置 Text :窗体标题栏显示的文字窗体标题栏显示的文字 TopMost :设置窗体是否为最顶端的窗体设置窗体是否为最顶端的窗体 WindowState :窗体出现时最初的状态(正常、最大化、最小化)窗体出现时最初的状态(

27、正常、最大化、最小化) 11、为什么使用事件、为什么使用事件 Windows 系统中处处是事件: 鼠标按下、鼠标释放、键盘键按下 Windows 系统通过事件处理来响应用户的请求显示开始菜单显示开始菜单 我的电脑我的电脑窗口打开窗口打开事件触发事件触发 事件响应的结果事件响应的结果 单击单击双击双击12、事件驱动、事件驱动 Windows 通过随时响应用户触发的事件做出相应的响应事件驱动机制我们需要做的:针对我们感兴趣的事件,编写相应的事件处理程序 WinForms 应用程序也是事件驱动的13、编写事件处理程序、编写事件处理程序 编写事件处理程序的步骤:1、选中控件 2、在“属性”窗口中单击3

28、、找到事件4、生成事件处理方法5、编写处理代码事件处理程序分析事件处理程序分析/ 窗体的鼠标移动事件处理程序窗体的鼠标移动事件处理程序private void Form1_MouseMove(object sender, MouseEventArgs e ) this.Text = String.Format(捕捉到鼠标了捕捉到鼠标了!(0,1), e.X,e.Y ); 示例中添加的事件处理程序:this关键字关键字代表窗体本身代表窗体本身鼠标的横纵坐标鼠标的横纵坐标窗体标题栏显窗体标题栏显示的文字示的文字鼠标事件参数鼠标事件参数事件源事件源14、窗体的重要事件、窗体的重要事件 Load :窗

29、体加载事件 MouseClick :鼠标单击事件 MouseDoubleClick :鼠标双击事件 MouseMove :鼠标移动事件 KeyDown :键盘按下事件 KeyUp :键盘释放事件 窗体有哪些事件?窗体上各事件的引发顺序窗体上各事件的引发顺序当一个窗体启动时,执行事件过程的次序如下:当一个窗体启动时,执行事件过程的次序如下:(1)本窗体上的)本窗体上的Load事件过程。事件过程。(2)本窗体上的)本窗体上的Activated事件过程。事件过程。(3)本窗体上的其他)本窗体上的其他Form级事件过程。级事件过程。(4)本窗体上包含对象的相应事件过程。)本窗体上包含对象的相应事件过程

30、。一个窗体被卸载时,执行事件过程的次序如下:一个窗体被卸载时,执行事件过程的次序如下:(1)本窗体上的)本窗体上的Closing事件过程。事件过程。(2)本窗体上的)本窗体上的FormClosing事件过程。事件过程。(3)本窗体上的)本窗体上的Closed事件过程。事件过程。(4)本窗体上的)本窗体上的FormClosed事件过程。事件过程。 当鼠标在窗体上点击时,窗体的背景色改变: 如果是红色,变成黄色 如果是黄色,变成绿色 否则变成红色提示:提示:处理窗体的处理窗体的 MouseClick 事件事件 利用利用Color类得到某种颜色:类得到某种颜色: 红色红色Color.Red 绿色绿色

31、Color.Green 黄色黄色Color.Yellow窗体的背景色:窗体的背景色:this.BackColor判断背景色:判断背景色:if (this.BackColor = Color.Red)例例/ 鼠标单击事件鼠标单击事件private void Form1_MouseClick (object sender, MouseEventArgs e) if (this.BackColor = Color.Red) this.BackColor = Color.Yellow; else if (this.BackColor = Color.Yellow) this.BackColor = C

32、olor.Green; else this.BackColor = Color.Red; 15、窗体显示及分类、窗体显示及分类1、启动窗体将自动显示。、启动窗体将自动显示。2、显示一个非启动窗体,即由一个窗体调用显示另一个窗体需要创、显示一个非启动窗体,即由一个窗体调用显示另一个窗体需要创建另一个窗体的对象,再用建另一个窗体的对象,再用Show()或或ShowDialog()方法显示。方法显示。 Form1 f=new Form1(); /创建窗体的对象创建窗体的对象 f. Show();/非模式窗体非模式窗体或或 f.ShowDialog();/模式窗体模式窗体窗体显示窗体显示1 1 单文档

33、窗体单文档窗体 单文档窗体一次只能打开一个活动窗体,窗体间没有包含关系。(1)窗体间的跳转 步骤:1、定义窗体对象2、显示窗体窗体分类窗体分类定义窗体对象:定义窗体对象:被调用的窗体类名被调用的窗体类名 窗体对象窗体对象 = new 被调用的窗体类名被调用的窗体类名( );显示窗体:显示窗体:窗体对象窗体对象 . Show( );例:例:Form1 f1=new Form1();f1.Show();例:例:/非模式窗体非模式窗体Form1 f1=new Form1();f1.Show();(2)模式窗体模式窗体和非模式窗体非模式窗体 模式窗体指不关闭当前窗就不能切换到其它窗体。窗体显示用Sho

34、wDialog()方法。 非模式窗体则可以在窗体间自由切换。窗体显示用Show ()方法。例:例:模式窗体模式窗体Form1 f1=new Form1();f1. ShowDialog();(1) 什么是什么是MDI在在 MDI 应用程序中可以应用程序中可以同时同时打开打开多个多个文件文件 父窗口父窗口子窗口子窗口2 多文档窗体(MDI)(2 ) 创建创建MDI示例示例(3) 怎样创建怎样创建MDI创建 MDI 的步骤: 1、设置父窗体的 IsMDIContainer 属性 2、设置子窗体的 MdiParent 属性ChildForm childForm = new ChildForm();

35、childForm.MdiParent = this; childForm.Show(); 创建子窗体的对象创建子窗体的对象设置子窗体的父窗体设置子窗体的父窗体显示子窗体显示子窗体建立子窗体窗口列表步骤: 1、在父窗体中添加菜单条 2、添加 “窗口”菜单 3、设置菜单控件的 MdiWindowListItem 属性 MDI中可以使用模式中可以使用模式窗体窗体吗?吗?528.3 Windows窗体控件概述窗体控件概述 Windows窗体是制作标准Win32屏幕的一种更高级的方法,具有非常健全的功能。.NET Framework中的所有语言都使用Windows窗体来代替它们在图形窗体中所使用的组件

36、。在.NET下,Windows窗体为所有的语言提供了一套丰富的、统一的控件和绘图功能,以及用于图形和绘图底层Windows服务的标准API。有了Windows窗体,任何图形和屏幕函数就不再需要使用内置的Windows图形接口了。Label :标签标签 lblTextBox :文本框文本框 txtListBox :列表框列表框 lstComboBox :组合框组合框 cboGroupBox :分组框分组框grpPanel :面板面板pnlRadioButton :单选按钮单选按钮rdoButton : 按钮按钮btn1、常见窗体控件及命名习惯、常见窗体控件及命名习惯2、 常用基本属性常用基本属性

37、 1) Name:表示控件的名称。 2) Enabled:表示控件是否可以对用户交互作出响应。 3) Font:表示控件中显示文字的字体格式,包括字体名称、字号以及是否以斜体、加粗和下划线显示。 4) BackColor:表示控件的背景色。 5) ForeColor:表示控件的前景色。 6) Image:表示控件上显示的图像。 7) Location:这是一个复合属性,表示控件的左上角相对于其容器的左上角的坐标。 8) Size:这是一个复合属性,表示控件的高度和宽度。 9) Visible:表示是否显示该控件。 3、 常用事件常用事件 1) Click事件:单击该控件时触发。 2) Mous

38、eEnter事件:鼠标进入控件区域内时触发。 3) MouseDown事件:在控件区域内按下鼠标键时触发。 4) MouseLeave事件:鼠标离开控件区域时触发。 5)KeyPress事件:当用户按下又放开某个ASCII字符键时 ,会引发当前拥有焦点对象的KeyPress事件。 6) KeyDown和KeyUp事件: KeyDown和KeyUp事件发生在用户按下键盘上某键时,通常可编写其事件代码以判断用户按键的情况。4、控件焦点与、控件焦点与Tab键次序键次序焦点(焦点(Focus)是指当前处于活动状态的窗体或控件。)是指当前处于活动状态的窗体或控件。 要将焦点移到当前窗体中的要将焦点移到当

39、前窗体中的textBox1文本框,可以文本框,可以使用以下命令:使用以下命令:textBox1.Focus();1 1 ButtonButton控件控件使用方法:使用方法:1 1)从工具栏拖放一个)从工具栏拖放一个buttonbutton到窗体到窗体常用:常用: 1 1TextText属性:显示控件文本信息属性:显示控件文本信息例如:例如:this.button1.Text=this.button1.Text=确定确定; 2 2ClickClick事件:单击鼠标左键时触发。事件:单击鼠标左键时触发。例如:例如:private void button1_Click(object sender,p

40、rivate void button1_Click(object sender, System.EventArgs e) System.EventArgs e) MessageBox.Show(this,“MessageBox.Show(this,“你点击了你点击了 确定确定 按钮。按钮。”, , “提示信息提示信息”, ,MessageBoxButtons.OK,MessageBoxButtons.OK, MessageBoxIcon.Information); MessageBoxIcon.Information); 8.3 基本控件基本控件参数的含义: (1)object sender:

41、代表发出事件的对象,此处指button1。使用时可以直接用button1,也可以像下面形式: Button button=(Button)sender; (2)System.EventArgs e:封装了事件的信息 3. MouseEnter事件:鼠标进入按钮区域时触发。例如:private void button1_MouseEnter(object sender,System.EventArgs e) /颜色在System.Drawing名称空间下this.button1.BackColor=Color.Red; 4. MouseLeave事件:鼠标离开按钮区域时触发。例如:private

42、 void button1_MouseLeave(object sender, System.EventArgs e)this.button1.BackColor=SystemColors.Control; 2 2 TextBoxTextBox控件控件/ /RichTextBoxRichTextBox控件控件常用:常用: 1 1TextText属性:表示文本框中的当前文本。属性:表示文本框中的当前文本。 例如:例如:this.textBox1.Text=abcd;this.textBox1.Text=abcd; 2 2MultilineMultiline属性:表示是否可以包含多行内容。属性:表

43、示是否可以包含多行内容。 3 3MaxLengthMaxLength属性:表示用户可以在文本框控件中最多键属性:表示用户可以在文本框控件中最多键 入的字符数入的字符数。 4 4 PasswordCharPasswordChar属性:用于屏蔽在单行文本框控件中输入的的密码字属性:用于屏蔽在单行文本框控件中输入的的密码字符符 。 5 5、 TextChangedTextChanged事件:更改事件:更改TextText属性值时触发。属性值时触发。例如:例如:private void textBox1_TextChanged(object senderprivate void textBox1_Te

44、xtChanged(object sender,System.EventArgs e)System.EventArgs e) this.textBox2.Text=this.textBox1.Text;this.textBox2.Text=this.textBox1.Text; /标题为求积的按钮的单击事件处理函数如下:private void button1_Click(object sender,EventArgs e) float ss,ee;ss=Convert.ToSingle(textBox1.Text);ee=Convert.ToSingle(textBox2.Text);tex

45、tBox3.Text=Convert.ToString(ss*ee); /标题为“清空”的按钮的单击事件处理函数如下: private void button2_Click(object sender, EventArgs e) textBox1.Text=;textBox2.Text=;textBox3.Text=;6 6、 KeyPressKeyPress事件:输入时按键触发。一般用于监控键盘的输入字符,事件:输入时按键触发。一般用于监控键盘的输入字符,可以用来限制键盘输入字符,如数字,可打印字符等。可以用来限制键盘输入字符,如数字,可打印字符等。 private void textBox

46、1_KeyPress(object sender, KeyPressEventArgs e) /限制键盘输入 只能输入数字和退格键 if (!(e.KeyChar = 48 & e.KeyChar = 58) | (e.KeyChar = 8) e.Handled = true; 例例3 Label控件和LinkLabel控件 Label控件通常用于提供控件或窗体的描述性文字,以便为用户提供有帮助作用的信息。 1. Label控件常用的基本属性 Text属性:表示显示的文本内容。 2. 操作示例 LinkLabel控件与Label控件非常相似,不同的是它可以显示超级链接。当用户单击Li

47、nkLabel控件时,会触发LinkClicked事件,可以在LinkClicked事件中编写代码链接到指定的网页。 4 ImageList控件 ImageList控件提供一个集合,可以用于存储在窗体的其他控件中使用图像。可以在图像列表中存储任意大小的图像,但在每个控件中,每个图像的大小必须相同。对于后面要介绍的ListView控件,则需要两个ImageList控件才能显示大图像和小图像。 ImageList是一个不在运行期间显示它本身的控件。在把它拖放到正在开发的窗体上时,它并不是放在窗体本身上,而是在窗体的下面,其中包含该控件所有的组件。这个功能可以防止不是用户界面一部分的控件遮挡窗体设计

48、器。这个控件的处理方式与其他控件相同,但不能移动它。66 PictureBox控件是用于显示图像的,它与ImageList控件不同,在Windows窗体运行时,它所使用的图像将被显示出来。67属性属性说明说明Image该属性用于设置PictureBox控件要使用的图像SizeMode该属性用于设置要显示图像的显示方式,可以取如下所示的值:Normal(默认值,用于将图像放在PictureBox控件的左上角)、StretchImage(用于调整图像大小以适应PictureBox控件的显示)、AutoSize(自动调整PictureBox控件的大小以便能容纳图像)或CenterImage(图像位于

49、PictureBox控件的中间位置)Region获取或设置与控件关联的窗口区域ClientSize该属性用于设置PictureBox控件的显示区域大小ErrorImage该属性用于获取或设置图像在加载过程中出错时,或者图像加载取消时要显示的图像ImageLocation该属性用于获取或设置要在PictureBox控件中显示的图像路径。该属性使得PictureBox控件显示一个来自Internet上图像的任务变得十分简单Site该属性用于获取或设置控件的站点5 5 PictureBoxPictureBox控件控件常用属性有: 1 Image:在PictureBox中显示的图像。 2 SizeMo

50、de:图片在控件中的显示方式。 其属性有: AutoSize:调整控件PictureBox大小,使其等于所包含 的图像大小。 CenterImage:如果控件PictureBox比图像大,则图像将 居中显示。如果图像比控件大,则图片将居于控件中心,而外边缘将被剪裁掉。 Normal:图像被置于控件的左上角。如果图像控件大, 则超出部分被剪裁掉。 StretchImage:控件中的图像被拉伸或收缩,以适合控 件的大小。 属性属性说明说明Image该属性用于设置PictureBox控件要使用的图像SizeMode该属性用于设置要显示图像的显示方式,可以取如下所示的值:Normal(默认值,用于将图

51、像放在PictureBox控件的左上角)、StretchImage(用于调整图像大小以适应PictureBox控件的显示)、AutoSize(自动调整PictureBox控件的大小以便能容纳图像)或CenterImage(图像位于PictureBox控件的中间位置)Region获取或设置与控件关联的窗口区域ClientSize该属性用于设置PictureBox控件的显示区域大小ErrorImage该属性用于获取或设置图像在加载过程中出错时,或者图像加载取消时要显示的图像ImageLocation该属性用于获取或设置要在PictureBox控件中显示的图像路径。该属性使得PictureBox控件

52、显示一个来自Internet上图像的任务变得十分简单Site该属性用于获取或设置控件的站点例:第一步:向窗体上拖放一个PictureBox控件,一个Label控件, 分别调整为适当大小。第二步:设置pictureBox1的Image属性,将一个图片放入控件 内。然后修改SizeMode属性,观察效果。第三步:添加下列事件:private void pictureBox1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)this.label1.Text=string.Format(“鼠标在PictureBox中的 位置

53、:x=0,y=1,e.X,e.Y);第四步:运行,在图片内移动鼠标,观察结果。 6 RadioButton控件 单选按钮是以他们所在的容器划分组的,直接在Form上放置的单选按钮将自动成为一组,这时Form就是容器,当选中容器中的一个单选按钮时,其他的将自动撤销选中。 如果要在一个Form上创建多个单选按钮组,则需要使用GroupBox或者Panel控件作为容器。常用:(1)Text属性(2)Checked属性(3)CheckedChanged事件第一步:设计窗体。 例第二步第二步:添加下列代码:private void radioButton_CheckedChanged(object se

54、nder, System.EventArgs e)RadioButton check=(RadioButton)sender;if(check.Checked)this.textBox1.Text=check.Text;第三步第三步:将三个RadioButton控件的CheckedChanged触发事件均选择为radioButton_CheckedChanged。第四步第四步:运行,观察结果。 一般在下列情况下使用复选框: 响应用户对复选框的选择,动态改变界面上其它控件的状态。 访问复选框的状态,执行不同的操作。 常用:(1)Text属性:表示与复选框控件关联的文本。 (2)Checked属性

55、:表示复选框是否处于选中状态。 (3)CheckedChanged事件:表示当Checked属性值更改时触发的操作。 7 CheckBox控件控件例:例:第二步第二步:在:在Form2Form2类中,直接添加方法类中,直接添加方法checkBox_CheckedChangedcheckBox_CheckedChanged,该方法的功能是当选中某该方法的功能是当选中某个复选框时,该复选框的文字会变为绿色。个复选框时,该复选框的文字会变为绿色。 private void checkBox_CheckedChanged(object sender ,System.EventArgs e)privat

56、e void checkBox_CheckedChanged(object sender ,System.EventArgs e) CheckBox checkbox=(CheckBox)sender;CheckBox checkbox=(CheckBox)sender;if(checkbox.Checked)if(checkbox.Checked) checkbox.ForeColor=Color.Green;checkbox.ForeColor=Color.Green; elseelse checkbox.ForeColor=Color.Black;checkbox.ForeColor=C

57、olor.Black; 第三步第三步:将三个:将三个CheckBoxCheckBox控件的控件的CheckedChangedCheckedChanged触发事件均选择为触发事件均选择为checkBox_CheckedChangedcheckBox_CheckedChanged。第一步第一步:在工程中添加一新窗体:在工程中添加一新窗体Form2Form2,设计画面如图:设计画面如图:第四步第四步:添加button1按钮的Click事件代码。private void button1_Click(object sender, System.EventArgs e) string str=选择结果:;

58、str+=(this.checkBox1.Checked=true)?(this.checkBox1.Text+、):; str+=(this.checkBox2.Checked=true)?(this.checkBox2.Text+、):; str+=(this.checkBox3.Checked=true)?(this.checkBox3.Text+、):;if(strstr.Length-1=、)str=str.Substring(0,str.Length-1);MessageBox.Show(str);第五步:直接执行窗体Form2的方法。 当执行项目时,C#会自动调用窗体Form1,

59、此处示例不需执行Form1,而希望执行窗体Form2,为了能够直接调用窗体Form2,必须在Form1类中找到Main方法,对其进行修改: static void Main() Application.Run(new Form2(); 当选项比较多时,或者在运行时动态的决定有哪些选项时,可以使用这种控件。常用:(1)Items属性:表示控件对象中所有项的集合。 (2)MultiColumn属性:表示控件对象是否支持多列。 (3)ColumnWidth属性:表示控件对象支持多列时,列的宽度。 (4)CheckOnClick属性:表示当选定某项时是否应同时改变复选框状态。 (5) Sorted属性

60、:表示控件对象中各项是否按字母有序。(6) CheckedItems 属性:表示控件对象中选中项的集合。 (7) CheckedIndices属性:表示控件对象中选中索引的集合。 8 CheckedListBox控件第一步第一步:设计界面,添加:设计界面,添加ItemsItems属性选项:属性选项:“足球足球 篮球篮球 排球排球 乒乓球乒乓球 羽毛球羽毛球 拳击拳击 体操体操 射击射击 跑步跑步 逛街逛街 象棋象棋 围棋围棋 跳棋跳棋 军旗军旗 五子棋五子棋 拱猪拱猪 双升双升 其它其它 ”。例:例:第二步:添加button1按钮的Click事件代码:private void button1_Click(ob

温馨提示

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

评论

0/150

提交评论