C#程序设计基础入门教程(第3版)课件 第8章 Windows窗体_第1页
C#程序设计基础入门教程(第3版)课件 第8章 Windows窗体_第2页
C#程序设计基础入门教程(第3版)课件 第8章 Windows窗体_第3页
C#程序设计基础入门教程(第3版)课件 第8章 Windows窗体_第4页
C#程序设计基础入门教程(第3版)课件 第8章 Windows窗体_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

第8章Windows窗体《C#程序设计基础入门教程(第3版)》学习目标/Target掌握Windows窗体的创建,能够在VisualStudio2022中创建Windows窗体,并实现控件的添加。了解Windows窗体应用的结构,能够说出Windows窗体应用的主要组成部分。掌握Windows窗体的属性,能够通过设置窗体的属性设置窗体的显示样式。掌握Windows窗体的事件,能够通过设置控件的事件实现控件的特定功能。掌握MDI窗体,能够设置MDI窗体的排列形式。章节概述/Summary在前面的章节中,程序都是在控制台模板下编写的,这种程序称为控制台应用程序。控制台应用程序的运行结果都是通过控制台输出的,用户体验不是很好。为此,C#提供了可视化的Windows窗体。本章将对Windows窗体进行详细讲解。目录/Contents010203创建Windows窗体Windows窗体应用结构Windows窗体属性04Windows窗体的事件05MDI窗体创建Windows窗体8.18.1创建Windows窗体掌握Windows窗体的创建,能够在VisualStudio2022中创建Windows窗体,并实现控件的添加。学习目标Windows窗体也称为窗口,它是向用户显示信息的可视化界面,是Windows窗体应用的基本单元。创建Windows窗体的具体步骤如下。8.1创建Windows窗体启动VisualStudio2022,进入VisualStudio2022的初始界面,如图。8.1创建Windows窗体1.创建项目在“VisualStudio2022初始化界面”中单击“创建新项目”按钮,进入创建新项目窗口,如图。8.1创建Windows窗体1.创建项目选择“Windows窗体应用”选项,单击“下一步”按钮,进入配置新项目窗口,在该窗口中从上到下依次输入项目名称(本书命名为FormProgram)、项目存储的位置、解决方案名称,如图。8.1创建Windows窗体1.创建项目单击配置新项目窗口中的“下一步”按钮,进入其他信息窗口,选择框架,如图。8.1创建Windows窗体1.创建项目保持默认选择“.NET8.0”,单击“创建”按钮,进入VisualStudio2022的窗体设计界面,如图。8.1创建Windows窗体1.创建项目选择菜单栏中的“视图”→“工具箱”选项,窗体左侧会显示工具箱面板。在工具箱面板中选择“公共控件”选项组中的Label控件,将该控件拖曳到Form1窗体中,然后选中该窗体中的Label控件,即可在窗体右下角的属性窗口中设置该控件Text属性的值,将该属性值设置为“我是一个窗体”,如图。8.1创建Windows窗体2.向窗体中添加控件单击工具栏中的按钮或按F5键启动程序,显示窗体的运行结果,如图。8.1创建Windows窗体3.运行结果Windows窗体应用结构8.28.2Windows窗体应用结构了解Windows窗体应用的结构,能够说出Windows窗体应用的主要组成部分。学习目标创建完Windows窗体后,VisualStudio2022就为其构建了基本结构,设计者可以在此结构基础上开发应用程序。下面以8.1节创建的Windows窗体应用——FormProgram为例,介绍Windows窗体应用的结构,如图。8.2Windows窗体应用结构用于保存项目运行时所需的各种外部库、框架和其他资源用于设置窗体界面以及编写逻辑代码用于在窗体类中自动生成控件的初始化代码只有在创建控件对象或为控件注册事件时才会出现,它用于存放窗体中使用的资源信息用来设置项目运行时的主窗体在Windows窗体应用中,使用较多的文件为Form1.cs、Form1.Designer.cs和Program.cs,下面对这3个文件进行详细讲解。Form1.csAForm1.Designer.csBProgram.csC8.2Windows窗体应用结构(1)Form1.cs[设计]。双击解决方案资源管理器窗口中的Form1.cs文件,切换到Form1.cs[设计]界面,如图。8.2Windows窗体应用结构1.Form1.cs文件Form1是Form1.cs[设计]界面中系统初始化的窗体(2)Form1.cs逻辑代码。Windows窗体应用除了可向用户展示友好的界面外,还可以与用户进行交互,而实现交互功能的逻辑代码都放在Form1.cs逻辑代码中。在Form1.cs[设计]界面所示的Form1窗体空白处右击,会弹出快捷菜单,在快捷菜单中选择“查看代码”选项,进入Form1.cs逻辑代码界面,如图。8.2Windows窗体应用结构1.Form1.cs文件Form1.Designer.cs文件用于在窗体类中自动生成控件的初始化代码。例如,将Button按钮拖曳到Form1.cs窗体中,Form1.Designer.cs文件中会自动生成一段代码,如图。8.2Windows窗体应用结构2.Form1.Designer.cs文件每一种可执行程序都有自己的主入口,例如,控制台模板中的Main()方法就是程序的入口。默认情况下,Program.cs文件是Windows窗体应用的主入口,Program.cs文件如图。8.2Windows窗体应用结构3.Program.cs文件Windows窗体属性8.38.3Windows窗体属性掌握Windows窗体的属性,能够通过设置窗体的属性设置窗体的显示样式。学习目标窗体包含一些基本的组成要素,如图标、边框、标题栏、标题等,可以通过窗体的属性对这些要素进行设置,窗体常用的属性如表。属性说明Size通过设置窗体的宽高指定窗体的大小MinimumSize通过设置窗体的宽高将窗体调整到最小MaximumSize通过设置窗体的宽高将窗体调整到最大Name指示代码中用来标识该对象的名称Text设置窗体的标题栏上显示的内容8.3Windows窗体属性属性说明StartPosition设置窗体显示的位置FormBorderStyle指示窗体的边框和标题栏的外观和行为Icon设置或获取窗体在标题栏、任务栏以及窗口最小化时所显示的图标IsMdiContainer确定该窗体是否为MDI(MultipleDocumentInterface,多文档界面)容器BackgroundImage设置窗体的背景图像8.3Windows窗体属性属性说明BackgroundImageLayout设置窗体的背景布局MaximizeBox是否显示窗体最大化按钮,该属性有True和False两个值,分别表示显示和取消显示最大化按钮,默认为TrueMinimizeBox是否显示窗体最小化按钮,该属性有True和False两个值,分别表示显示和取消显示最小化按钮,默认为TrueCursor确定鼠标指针在窗体上的形状8.3Windows窗体属性以下图所示的窗体为例,讲解如何使用Windows窗体属性设置窗体的显示样式。8.3Windows窗体属性在解决方案Chapter08中创建一个项目名为GreetingCardProgram的Windows窗体应用。1.创建项目2.设置窗体大小选中Form1窗体,按快捷键F4打开属性窗口,单击属性窗口中的图标,会显示出窗体的所有属性。在属性窗口中的找到Size属性,将Size属性中的Width属性、Height属性的值分别设置为500、300。8.3Windows窗体属性选中Form1窗体,找到属性窗口中的StartPosition属性,该属性的值有5个,分别为CenterParent、CenterScreen、Manual、WindowsDefaultBounds、WindowsDefaultLocation,各属性值的说明如下。3.设计窗体的位置1CenterParent:CenterScreen:设置窗体在父窗体中居中显示。2设置窗体在屏幕居中显示。Manual:3窗体的位置由Location属性指定。WindowsDefaultBounds:4设置窗体定位在Windows系统默认位置,其边界是Windows系统设置好的默认值。WindowsDefaultLocation:5不可调整大小的工具窗口边框。8.3Windows窗体属性4.设置窗体的标题栏样式窗体创建完成后,窗体的标题栏默认带有系统图标、标题名称、最大化按钮、最小化按钮。下面通过设置窗体的属性修改标题栏的样式,具体步骤如下。8.3Windows窗体属性(1)设置标题栏图标。选中Form1窗体,在属性窗口中找到Icon属性,单击Icon属性会出现按钮,如图。4.设置窗体的标题栏样式单击8.3Windows窗体属性(1)设置标题栏图标。打开选择图标文件的对话框,选中图片“传智教育.ico”,如图所示。单击“打开”按钮,完成窗体标题栏图标的设置。4.设置窗体的标题栏样式8.3Windows窗体属性(2)修改标题名称。选中Form1窗体,在属性窗口中将Text属性的值设置为“新年贺卡”,此时Form1窗体的标题会更改为“新年贺卡”。4.设置窗体的标题栏样式(3)取消窗体最大化、最小化按钮的显示。选中Form1窗体,在属性窗口中将MaximizeBox属性、MinimizeBox属性的值设置为False,即可取消窗体最大化、最小化按钮的显示。8.3Windows窗体属性为了使窗体更加美观,通常会在项目中设置窗体的背景图片,窗体的背景图片通过BackgroundImage属性设置。找到Form1窗体的BackgroundImage属性,单击按钮,打开选择资源对话框,如图。5.设置窗体的背景图片8.3Windows窗体属性5.设置窗体的背景图片使用计算机硬盘上的某个图片文件作为背景图片。本地资源项目资源文件将图片添加到项目的资源文件中,通过资源管理器引用它。有两种选择资源的方式,分别为本地资源和项目资源文件,这两种方式的区别如下。8.3Windows窗体属性5.设置窗体的背景图片这里选择“项目资源文件”选项,单击“导入”按钮,打开选择图片的对话框,如图。8.3Windows窗体属性5.设置窗体的背景图片选择图片资源后,单击“打开”按钮,回到选择资源对话框中,在该对话框的右侧可以看到背景的预览图,如图。8.3Windows窗体属性6.项目运行结果运行程序,结果如图。8.3Windows窗体属性Windows窗体的事件8.48.4Windows窗体的事件掌握Windows窗体的事件,能够通过设置控件的事件实现控件的特定功能。学习目标Windows是事件驱动的操作系统,与Form(窗体)类的任何交互都是基于事件实现的。Form类提供了很多窗体事件,用于实现Windows对窗体执行的各种操作,常用的窗体事件如表。事件说明Load窗体加载时触发MouseClick单击事件(Click事件)MouseDoubleClick在窗体中双击时触发8.4Windows窗体的事件事件说明MouseMove在窗体中移动鼠标指针时触发KeyDown键盘键按下时触发该事件KeyUp键盘键释放时触发该事件FormClosing当窗体关闭时触发该事件8.4Windows窗体的事件下面通过一个案例演示Windows窗体事件的应用。在8.3节中,在GreetingCardProgram项目中制作了一张新年贺卡,本案例要求在关闭新年贺卡窗体时弹出一个对话框,询问用户是否关闭当前窗体,具体步骤如下。8.4Windows窗体的事件1.设置FormClosing事件选中GreetingCardProgram项目中的新年贺卡窗体,在属性窗口中单击图标,将该窗体的所有事件显示出来,如图。8.4Windows窗体的事件1.设置FormClosing事件选中FormClosing事件,在其右侧的输入框中输入该事件的名称Form1Closing,双击FormClosing事件即可进入新年贺卡窗体的Form1Closing()方法中。当关闭Form1窗体时,会执行Form1Closing()方法,弹出一个对话框,询问用户“是否关闭窗体?”,具体代码如例。8.4Windows窗体的事件点击查看2.项目运行结果运行项目,单击新年贺卡窗体中的按钮,会弹出询问对话框,询问用户是否关闭窗体,如图。8.4Windows窗体的事件如果将Form1.cs逻辑代码中的Form1Closing()方法删除,而没有删除Form1.Designer.cs文件中的注册代码,则程序在编译时会报错,如图。删除事件的方法8.4Windows窗体的事件提示的错误信息表明Form1类中没有定义Form1Closing()方法,这是因为窗体或者控件注册事件后,在Form1.Designer.cs文件中会自动生成相应的注册代码。删除Form1.Designer.cs文件中的FormClosing事件注册的Form1Closing()方法的步骤如下。(1)找到Form1注释信息,该注释为窗体的Name属性值,表示接下来的代码为Form1窗体的注册代码,如图。删除事件的方法8.4Windows窗体的事件(2)删除Form1注释信息下方注册的FormClosing事件。删除事件的方法8.4Windows窗体的事件MDI窗体8.58.5.1MDI窗体的概念掌握Windows窗体的事件,能够描述MDI窗体的概念。学习目标前文使用到的所有窗体都为单文档界面(SingleDocumentInterface,SDI),SDI窗体只能在窗体中显示一个子窗体。但在实际开发中,经常需要在一个窗体中显示多个子窗体,为此,人们设计了MDI。MDI允许在一个主窗体内打开多个子窗体,每个子窗体都是独立的文档或视图,它们包含在同一个主窗体内。这个主窗体被称为MDI父窗体。8.5.1MDI窗体的概念MDI窗体如图。8.5.1MDI窗体的概念用户反馈窗体中包含4个反馈表窗体。在MDI窗体中,所有的子窗体都被限制在父窗体的边界内,当用户最小化或关闭父窗体时,所有的子窗体也会被相应地处理。8.5.2如何设置MDI窗体掌握Windows窗体的事件,能够通过设置控件的事件实现控件的特定功能。学习目标下面详细介绍如何设置MDI窗体。8.5.2如何设置MDI窗体如果要将某个窗体设置为父窗体,只需在窗体的属性窗口中将IsMdiContainer属性的值设置为True,如图。1.设置父窗体8.5.2如何设置MDI窗体父窗体设置完成后,通过设置窗体的MdiParent属性设置子窗体。例如,Form1为父窗体,在Form1窗体中将Form2、Form3设置为子窗体。2.设置子窗体示例代码Form2form2=newForm2();form2.MdiParent=this;form2.Show();Form3form3=newForm3();form3.MdiParent=this;form3.Show();创建Form2窗体对象将Form2窗体设置为子窗体调用Show()方法显示Form2窗体8.5.2如何设置MDI窗体8.5.3MDI子窗体的排序掌握MDI窗体,能够设置MDI窗体的排列形式。学习目标在默认情况下,如果在MDI窗体中同时打开多个子窗体,界面会非常混乱,而且不易浏览。此时可以使用Form类的LayoutMdi()方法排列父窗体中的子窗体,使其更有序地显示。LayoutMdi()方法的具体语法格式如下。语法格式publicvoidLayoutMdi(MdiLayoutvalue)8.5.3MDI子窗体的排序参数value用来定义MDI子窗体的布局,它的值是MdiLayout枚举成员之一。MdiLayout用于指定MDI父窗体中子窗体的布局,其枚举成员及说明如表。枚举成员说明Cascade所有MDI子窗体均层叠在MDI父窗体的工作区内TileHorizontal所有MDI子窗体均水平平铺在MDI父窗体的工作区内TileVertical所有MDI子窗体均垂直平铺在MDI父窗体的工作区内8.5.3MDI子窗体的排序下面通过一个案例演示如何设置MDI窗体中子窗体的排列,具体步骤如下。8.5.3MDI子窗体的排序在解决方案Chapter08中创建一个项目名为MDISort的Windows窗体应用。1.创建程序8.5.3MDI子窗体的排序2.设置父窗体选中窗体Form1,将该窗体的Text属性和Name属性的值都设置为Form_MDIParent。将该窗体的IsMdiContainer属性的值设置为True,即可将该窗体设置为父窗体,设置为父窗体后,窗体会变为灰色,如图。打开工具箱,找到“菜单和工具栏”选项组中的MenuStrip控件(在第9章中进行详细讲解),该控件用于显示菜单栏。在Form_MDIParent窗体中添加1个MenuStrip控件,设置4个水平方向的菜单项,菜单项文本分别设置为“显示子窗体”“水平平铺”“垂直平铺”“层叠排列”,如图。3.在父窗体Form_MDIParent中添加菜单栏8.5.3MDI子窗体的排序右击MDISort项目名称,在弹出的快捷菜单中选择“添加”选项,弹出添加新窗体的子菜单,如图。4.在项目中添加子窗体8.5.3MDI子窗体的排序选择“窗体(Windows窗体)”选项,打开添加新项界面,如图。4.在项目中添加子窗体8.5.3MDI子窗体的排序按照上述步骤,在项目中添加3个子窗体,分别命名为Form_ChildOne.cs、Form_ChildTwo.cs和Form_ChildThree.cs。设置父窗体Form_MDIParent中的“显示子窗体”菜单项的Click事件,进入ShowSubform_Click()方法中,在该方法中实现在父窗体中显示3个子窗体的功能,具体代码如例。5.实现“显示子窗体”菜单项功能8.5.3MDI子窗体的排序点击查看通过设置父窗体Form_MDIParent中“水平平铺”“垂直平铺”“

温馨提示

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

评论

0/150

提交评论