窗体的关闭事件
8.1 事件过程

一、事件过程1、事件:就是在窗体和控件上进行能够识别的动作而执行的操作!2、事件分类:键盘事件、鼠标事件、对象事件、窗口事件、操作事件(1)键盘事件:键按下、键释放、击键。
(2)鼠标事件:单击事件(click)、双击事件(dbclick)(3)对象事件:获得焦点、失去焦点(4)窗口事件:打开(窗体打开,但第一条记录显示之前发生)、关闭加载(打开窗体,并显示他的记录时发生,在打开之后)3、想要在发生某事件时执行某些命令,可以设置该事件属性结合到某宏上或者设置该事件过程。
4、事件过程:在某事件发生时执行的代码5、分类:控件事件过程和窗体事件过程二、控件事件1、控件事件过程设置语法:Private Sub 控件名_事件名()语句块End sub表示某控件发生该事件时执行该语句块2、控件属性(1)Fontsize:字体大小例1:修改标签控件的字体大小。
bel.fontsize=30bel.fontsize= bel.fontsize +10例2:bel.caption= bel.fontsize(2)Caption属性:标题例1:bel.caption=”呵呵”例2:Label.caption=command.captioncommand.capation= Label.caption例3:将文本框的内容传给标签的标题Label.caption=Text1或text1=label1.caption例:将标签的大小随着文本框的数值大小而改变。
Label.fontsize=text1(3)visible:可见性;其值为TRUE—可见;FALSE-不可见例:两个命令按钮实现标签控件的可见性。
Label1.visible=false(4)enable 是否有效,是否可用;TRUE—可用;FALSE-不可用,不会影响任何事件。
Command0.enable=false三、窗体事件1、窗体的属性(1)Caption:标题例:单击命令按钮修改窗体的标题Me.caption=”计算机课程”注意:赋值语句的使用(2)recordsource:记录源例:对学生信息表的表格式窗体修改数据源Me.recordsource=”select * from 学生信息表where 性别=’男’”或 Me.recordsource=”学生表查询”(3)TimerInterval:计数器间隔,单位为毫秒2、窗体事件(1)窗体事件命名方式Private Sub form_事件名()语句块End sub(2)窗体打开事件例:bel1.caption=”a”(3)窗体计时器事件每隔计时器间隔(timerinterval)时间,事件就会激发一次,修改计时器间隔属性,他的数值是以毫秒为单位,修改属性为0 就会停止计时。
C#在一个窗体中关闭另一个窗体

class sysManage//系统管理类
{
public static 窗体A flClose;//暂存窗体实例 用于在其它窗体中关闭窗体
public static 窗体B frClose;//暂存窗体实例 用于在其它窗体中关闭窗体
sysManage.frClose.Dispose();
}
}
第二步:在窗体A的LOAD事件中:
sysManage.flClose = this;//暂存窗体实例 用于以后在另一个窗体中关闭
第三步:在窗体B的LOAD事件中:
sysManage.frClose = this;//暂存窗体实例 用于以后在另一个窗体中关闭
第四步:谁是主窗体谁就设置为另一个窗体的父窗体:假设窗体A为主窗体
当窗体A通过按钮C打开窗体B时:在按钮C的单击事件中:
窗体B b= new 窗体B();
fr.AddOwnedForm(this);//设置窗体B为当前窗体(窗体A)的子窗体
b.Show();
this.hide();
第五步:在窗体A的关闭按钮D的单击事件里:
this.Close();//父窗体A关闭
if (sysManage.frClose != null)
{
sysManage.frClose.Close();//关闭窗体B //只有在第四步中设置父子关系 这个才能生效!
VB程序设计教程 习题解答

《VB程序设计教程》(第4版)习题解答单元一巩固与提高答案一、选择题1. Visual Basic 6.0分为3种版本,不属于这3种版本的是A)学习版B)专业版C)企业版D)业余版【答】D。
2. 下列方法中不能退出Visual Basic的是A)按Alt+Q组合键B)按下Alt+F组合键,然后按Esc键C)按F10键,然后按F键,再按X键D)打开“文件”菜单→“退出”命令【答】B。
3. Visual Basic集成的主窗口中不包括A)属性窗口B)标题栏C)菜单栏D)工具栏【答】A。
4. 下列操作可以打开立即窗口的是A)Ctrl+D B)Ctrl+F C)Ctrl+G D)Ctrl+E【答】C。
二、填空题1. 与传统的程序设计语言相比,Visual Basic最突出的特点是____。
【答】事件驱动编程机制。
2. 如果不使用鼠标,用键盘打开菜单和执行菜单命令,第一步应按____键。
【答】功能键F10或Alt键。
3. 建立一个新的标准模块,应该选择____菜单下的“添加模块”命令。
【答】“工程”菜单。
三、思考题1. 简述Visual Basic的特点。
【答】与一般的程序设计语言相比,VB具有以下特点:(1) 可视化的设计平台;(2) 面向对象的设计方法;(3) 事件驱动的编程机制;(4) 结构化的设计语言;(5) 充分利用Windows资源;(6) 开放的数据库功能与网络支持。
2. 简述Visual Basic集成开发环境的组成。
【答】VB 6.0集成开发环境除了具有标准Windows环境的标题栏、菜单栏、工具栏外,还有工具箱、属性窗口、工程管理器窗口、窗体设计器、立即窗口、窗体布局窗口等有用的开发工具。
(1) 标题栏和菜单栏:标题栏中显示的有窗体控制菜单图标、当前激活的工程名称、当前工作模式以及最小化、最大化∕还原、关闭按钮。
菜单栏中显示了“文件”、“编辑”、“视图”、“工程”、“格式”等菜单项,其中包含了VB编程的常用命令。
VB课堂练习

VB课堂练习一一.填空题1.在对象名与事件名之间用[ ]符号连接。
窗体的对象名用[ ]表示。
2.Visual Basic 的窗体和控件是具有自己的[ ]、[ ]和方法的对象。
3.窗体和控件的大部分属性可以通过[ ]设置、也可以通过[ ]设置。
4.在面向对象程序设计中,对象是一个由[ ]和[ ]组成的概念。
5.Visual Basic 中的对象包括[ ]、[ ]和[ ]。
6.Name属性的含义是[ ],窗体的默认Name属性是[ ]。
7.Show 方法的作用是[ ],Hide 方法的作用是[ ]。
8. 一个窗体对象,其最先发生的事件是[ ]事件,最后发生的事件是[ ]事件。
9. 移动窗体时,为了初始化该窗体中的各控件,可选用窗体的[ ]事件;关闭窗体用[ ]事件。
10.窗体对象可以识别KeyPress、KeyUp、KeyDown事件,在按下某键时,这三个事件发生的顺序是:[ ]、[ ]、[ ]。
二.选择题1.在Visual Basic设计界面中不能隐藏的窗口是( )。
A)工程窗口B)属性窗口C)立即窗口D)窗体窗口2.以下可以构成语句的一项是( )。
A)对象名.属性B)对象名.方法名C)对象名.事件名D)对象名.函数名3.以下不是Visual Basic 的特点的选项是( )。
A)可视编程B)算法设计C)事件驱动D)面向对象4.在Visual Basic中通过( )属性来设置字体的颜色。
A)FontColor B)ClipControlC)BackColor D)ShowColor5.设置窗体的绘图方式是否在Paint事件中重绘整个窗体内容利用( )属性。
A)ControlBox B)ClipControlC)BordeStyle D)AutoRedraw7.( )是由Visual Basic提供的一种专门的子程序,由对象本身所具有,反映该对象功能的内部函数或过程。
A)文件B)属性C)方法D)窗体8.以下不属于同类的是( )。
窗体组件(TForm)的事件

窗体组件(TForm)的事件窗体组件最重要的一些事件主要是在窗体创建和关闭时产生的事件。
在创建窗体时,将会依次发生下列事件:OnCreate;OnShow;OnActivate;OnPaint。
1.OnCreate事件在创建窗体时会产生这一事件。
主窗体的这一事件经常用于对程序作一些初始化,如分配内存、为一些变量设置初始值等。
2.OnShow事件窗体显示时(即是窗体的V isible属性被设为True时)会产生这一事件。
3.OnActivate事件当窗体变为活动窗体时,会产生这一事件。
下面的代码表示当窗体Forml为活动窗体时,其标题(Caption)变为“活动窗体”:VOid fastcall TForml::FormActivate(TObject Sender){Caption=”活动窗体”;)4.OnPaint事件当窗体重画时发生这一事件,利用OnPaint事件加代码可以进行重画窗体时的特殊处理,例如在窗体尺寸变更时需要重画窗体,就会产生这一事件。
5.OnClick事件当鼠标在窗体上单击的时候发生该事件。
6.OnClick事件当鼠标在窗体上单击的时候发生该事件。
7.OnClose事件当关闭窗体的时候发生该事件,利用在OnClose事件加代码可以进行关闭窗体时的特殊处理。
该事件有一个TcloseAction类型的Action参数。
8.OnCloseQuery事件用OnCloseQuery可以指定窗体关闭的条件。
9.OnDestroy事件当窗体被删除时发生这一事件,利用在OnDestroy事件加代码可以进行删除窗体时的特殊处理。
10.OnHelp事件当窗体收到请求帮助时发生这一事件。
11.OnHide事件当窗体被隐藏时(窗体的V isible属性设置为False时)发生收到请求帮助时发生这一事件。
12.OnResize事件当窗体改变大小的时候发生这一事件,利用在OnResize事件加代码可以进行改变窗体大小的时候做特殊处理。
winform关闭窗体FormClosing事件用法介绍

winform关闭窗体FormClosing事件⽤法介绍在窗体中有FormClosing这个事件,这个事件是在窗体关闭时候运⾏的。
如果要取消某个事件的操作,那么就在该事件中写上e.Cancel=true就能取消该事件,也就是不执⾏该事件。
所以,你要在窗体关闭时候,跳出⼀个窗⼝提⽰是否关闭窗体,如果选择不关闭,那么写上e.Cancel=true就可以了,如果选择关闭,那么写上e.Cancel=false。
⽰例代码:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace RedisDemo{public partial class FrmMain : Form{public FrmMain(){InitializeComponent();}/// <summary>/// 窗体关闭事件/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void FrmMain_FormClosing(object sender, FormClosingEventArgs e){// 弹出提⽰框DialogResult result = MessageBox.Show("确定要关闭窗体吗?", "提⽰", MessageBoxButtons.YesNo, rmation);if (result == DialogResult.Yes){// 关闭窗体e.Cancel = false;}else{// 不关闭窗体e.Cancel = true;}}}}到此这篇关于winform关闭窗体FormClosing事件的⽂章就介绍到这了。
WinForm技术(二学期)-答案

4
41
DataAdapter
DataSet
DataReader
Command
3
42
在程序中要执行1个SQL 语句,得到编号为10的学 员的年龄,可以使用Command对象的( )方法。 ExecuteNonQuery() (选2项) ExecuteReader() SELECT Age FROM Students WHERE id = 10 在.NET中,一些数据类型为引用类型,当引用类型的 值为( )时,表明没有引用任何对象。(选择一 项) Nothing
10
在中,DataSet( )(选择一项)。
映射数据库的表和 是一个储存数据的 视图在Web服务器 对象 进行本地储存 第三行代码错误, 表名称与数据集的 虚拟表名称应对 应,应编写为: AdoApt.Fill(ds,"em ployee");
4
11
在应用程序中,AdoCon为与数据的连 接,使用数据适配器的代码如下: OleDbDataAdapter AdoApt=new OleDbDataAdapter("select * from employee",AdoCon); Dataset ds=new DataSet(); AdoApt.Fill(ds,"emp"); 该代码在运行时,将( ) 。(选择一项) 在winforms中文本框的( )属性用来指示其是否 是只读的。(选择一顶) ( )不属于.NET Framework 数据提供程序。(选1 项) 去掉字符串两端空格的方法是( )。(选1项)
4
38
SQL 数据提供程序类位于( )命名空 System.Data.SqlSe System.Data.SqlCli System.Data.Sql 间。 (选择一项) rver cent public static void Main() public static void Main(String[] args)
Delphi窗体事件执行顺序及说明

Delphi窗体事件执⾏顺序及说明Delphi 窗体事件执⾏顺序及说明1、常⽤的事件说明:OnActivate:当窗体被初始激活时,就会发⽣OnActivate事件,当初始创建窗体或者⽤户从⼀个窗体切换到另⼀个窗体时,就可能激活窗体,Application对象也有⼀个OnActivate事件,当⽤户从⼀个应⽤程序切换到另⼀个应⽤程序时,就会产⽣此事件。
OnClose:当关闭⼀个应⽤程序时,就要发出OnClose事件OnCloseQuery:OnClose事件调⽤OnCloseQuery事件来看⼀看是否真的要关闭窗体,如果OnCloseQuery事件返回False,窗体就不会关闭。
OnCreate:当窗体初始化创建时,就会发⽣OnCreate事件,对特定窗体的任何实例,OnCreate事件只发⽣⼀次,OnCreate处理程序只是⽤来执⾏任何启动任务,这些启动任务对于窗体来说是需要的。
OnDestroy:OnDestroy事件是OnCreate的反事件,⽤来清除窗体动态分配的所有内存,或者做其他⼀些清理事务。
OnDragDrop:当⼀个对象被拖放到窗体上时,就会发⽣OnDragDrop事件,如果窗体⽀持拖放,那么就会对这个事件有所响应。
OnMouseDown:⿏标点击执⾏事件OnMouseMove:⿏标移动执⾏事件OnMouseUp:⿏标点击后放开执⾏事件OnPaint:每当窗体需要重画时,就会发⽣OnPaint事件,有很多原因会导致这个事件发⽣。
响应这个事件,可以作为应⽤程序所需要的任何画图,并随时可以显⽰出来。
在⼤部分情况下,专⽤组件会⾃⼰画图,但有些情况下,我们需要⾃⼰动⼿画图。
OnResize:每当重新缩放窗体时,就会发⽣OnResize事件,响应这个事件可以调整窗体上的组件或者对窗体重画。
OnShow:在窗体变成可见之前,就会发⽣OnShow事件。
在窗体显⽰之前,可以⽤这个事件完成图昂提需要处理的任何事情。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
若要防止窗体关闭,请处理FormClosing事件,并将传递给事件处理程序的CancelEventArgs的Cancel属性设置为true。可以使用此事件执行一些任务,如释放窗体使用的资源,还可使用此事件保存输入窗体中的信息或更新其父窗体。当窗体显示为模式对话框时,单击“关闭”按钮(窗体右上角带X的按钮)会隐藏窗体并将DialogResult属性设置为DialogResult.Cancel。通过在窗体的FormClosing事件的事件处理程序中设置DialogResult属性,可以在用户单击“关闭”按钮时重写分配给DialogResult属性的值。
private void ShowForm()
{
this.Show();
this.WindowState = FormWindowState.Normal;
this.ShowInTaskbar = true;
this.Activate();
}
/// <summary>
//பைடு நூலகம்隐藏窗口
/// </summary>
/// <param name="e"></param>
private void notifyIcon1_Click(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Normal)
{
this.WindowState = FormWindowState.Minimized; HiddenForm();
当应用程序关闭时,主窗体的关闭事件按以下顺序引发:
1、System.Windows.Forms.Form.Closing在关闭窗体时发生。注意:在.NET Framework版本2.0中,Closing事件已过时,应改用
FormClosing事件。
2、System.Windows.Forms.Form.FormClosing在关闭窗体前发生,此时可以取消窗体的关闭。
对象,详见MSDN。
3、System.Windows.Forms.Form.Load在第一次显示窗体前发生。
4、System.Windows.Forms.Control.VisibleChanged在Visible属性值更改时发生。注:如果通过编程修改或用户交互更改Visible属性,则将引发此事件。
如果窗体是多文档界面(MDI)父窗体,则在引发MDI父窗体的FormClosing事件之前将引发所有MDI子窗体的FormClosing事件。同样,在引发MDI父窗体的FormClosed事件之前,将引发所有MDI子窗体的FormClosed事件。取消MDI子窗体的FormClosing事件不能防止引发MDI父窗体的FormClosing事件。但是,取消该事件会将作为参数传递给父窗体的FormClosingEventArgs类的Cancel属性设置成false。要强制关闭所有MDI父窗体和子窗体,请将MDI父窗体中的Cancel属性设置成false。
注意:当调用Application.Exit方法以退出应用程序时,不引发Form.Closed和Form.Closing事件,但是会激发Form.FormClosed和Form.FormClosing事件。
FormClosing:在窗体关闭时,FormClosing事件发生。窗体关闭时,此事件会得到处理,从而释放与此窗体关联的所有资源。如果取消此事件,则该窗体保持打开状态。若要取消窗体的关闭操作,请将传递给事件处理程序的FormClosingEventArgs的Cancel属性设置为true。
窗体的关闭事件
对于关注对Windows窗体应用程序中引发的每个事件按次序进行处理的开发人员来说,事件引发的顺序特别重要。
当Windows窗体应用程序启动时,主窗体的启动事件按以下顺序引发
1、System.Windows.Forms.Control.HandleCreated在为控件创建句柄时发生。
2、System.Windows.Forms.Control.BindingContextChanged当BindingContext属性的值更改时发生。注:每个Windows窗体至少有一个BindingContext
3、System.Windows.Forms.Form.Closed关闭窗体后发生。注意:在.NET Framework版本2.0中,Closed事件已过时,应改用
FormClosed事件。
4、System.Windows.Forms.Form.FormClosed关闭窗体后发生。
5、System.Windows.Forms.Form.Deactivate当窗体失去焦点并不再是活动窗体时发生。
private void HiddenForm()
{
this.Hide();
}
窗体显示为无模式对话框时,在close之后,此窗体的资源已释放,不能再调用show方法使窗体可见。
窗体显示为有模式对话框时,单击关闭按钮(" X "的按钮在窗体的右上角)会隐藏窗体并且DialogResult属性将设置为DialogResult.Cancel。当用户单击该对话框的关闭的窗体按钮或设置DialogResult属性的值时,.NET framework不调用Close方法,该窗体会隐藏并可重新显示,而不必创建对话框的新实例。由于作为对话框中显示的窗体隐藏而未关闭,当窗体由应用程序时不再需要,必须调用该窗体的Dispose方法。
}
else if (this.WindowState == FormWindowState.Minimized)
{
ShowForm();
}
}
private void FrmMain_SizeChanged(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)//最小化
在以下两种情况下调用Close不会释放窗体:(1)窗体是多文档界面(MDI)应用程序的一部分且是不可见的;(2)该窗体是模式对话框。在这些情况下,需要手动调用Dispose来将窗体的所有控件都标记为需要进行垃圾回收。
/// <summary>
///最小化到托盘程序
/// </summary>
/// <param name="sender"></param>
5、System.Windows.Forms.Form.Activated当使用代码激活或用户激活窗体时发生。
6、System.Windows.Forms.Form.Shown只有在首次显示窗体时才会引发Shown事件;随后执行的最小化、最大化、还原、隐藏、显
示或无效化和重新绘制操作都不会引发该事件。
{
HiddenForm();
}
}
private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
HiddenForm();
}
/// <summary>
///显示窗口
/// </summary>