C# 窗体关闭时可以触发的事件

C# 窗体关闭时可以触发的事件
C# 窗体关闭时可以触发的事件

C# 窗体关闭时可以触发的事件

用户关闭软件时,软件一般会给“是否确认关闭”的提示。

通常,我们把它写在FormClosing 事件中,如果确定关闭,就关闭;否则把FormClosingEventArgs 的Cancel 属性设置为true,就取消了该窗体的关闭。

如果该窗体是主窗体,我们想在该窗体关闭时关闭整个应用程序,会遇到至少两种情况:

(1)该窗体同时是启动窗体,即它是应用程序中所有窗体的父类,则整个应用程序会被关闭。

(2)如果该窗体不是启动窗体,比如我们做了一个欢迎窗体,则应用程序中所有窗体的父类就是这个欢迎窗体了。这时该窗体的关闭并不会关闭整个应用程序。我们需要再加入“Application.Exit()”这行代码来退出应用程序。但同时又有问题了,父窗体的关闭又会给该窗体发送关闭事件,于是该事件又被调用一次,确认对话框又会弹出第二次。解决方法是用下面的代码:

注:做欢迎体界面可以在主窗体中,ShowDialog方法打开欢迎界面,而不是把欢迎界面作为启动窗体。下面的方法仅有理论意义。

1. p rotected override void WndProc(ref Message m)

2. {

3. //Console.WriteLine(m.Msg);

4. const int WM_SYSCOMMAND = 0x0112;

5. const int SC_CLOSE = 0xF060;

6. if (m.Msg == WM_SYSCOMMAND && (int)m.WParam == SC_CLOSE)

7. {

8. //捕捉关闭窗体消息

9. //用户点击关闭窗体控制按钮注释为最小化窗体

10. //this.WindowState = FormWindowState.Minimized;

11.

12. //窗体隐藏

13. this.Hide();

14. return;

15. }

16. base.WndProc(ref m);

17. }

FormClosing :在窗体关闭时,FormClosing 事件发生。窗体关闭时,此事件会得到处理,从而释放与此窗体关联的所有资源。如果取消此事件,则该窗体保持打开状态。若要取消窗体的关闭操作,请将传递给事件处理程序的FormClosingEventArgs 的Cancel 属性设置为true。

FormClosed:在用户或Application 类的Close 方法或Exit 方法关闭窗体后,会发生FormClosed 事件。若要防止窗体关闭,请处理FormClosing 事件,并将传递给事件处理程序的CancelEventArgs 的Cancel 属性设置为true。可以使用此事件执行一些任务,如释放窗体使用的资源,还可使用此事件保存输入窗体中的信息或更新其父窗体。

当窗体显示为模式对话框时,单击“关闭”按钮(窗体右上角带X 的按钮)会隐藏窗体并将DialogResult 属性设置为DialogResult.Cancel。通过在窗体的FormClosing 事件的事件处理程序中设置DialogResult 属性,可以在用户单击“关闭”按钮时重写分配给DialogResult 属性的值。

注意

在显示为无模式窗口的Form 上调用Close 方法时,不能调用Show 方法使窗体可见,因为窗体的资源已被释放。若要隐藏窗体然后又使其可见,请使用Hide 方法。

如果窗体是多文档界面(MDI) 父窗体,则在引发MDI 父窗体的FormClosing 事件之前将引发所有MDI 子窗体的FormClosing 事件。同样,在引发MDI 父窗体的FormClosed 事件之前,将引发所有MDI 子窗体的FormClosed 事件。取消MDI 子窗体的FormClosing 事件不能防止引发MDI 父窗体的FormClosing 事件。但是,取消该事件会将作为参数传递给父窗体的FormClosingEventArgs 类的Cancel 属性设置成false。要强制关闭所有MDI 父窗体和子窗体,请将MDI 父窗体中的Cancel 属性设置成false。

1. p rivate void Form2_FormClosing(object sender, FormClosingEventArgs e)

2. {

3. DialogResult result = MessageBox.Show("你确定要关闭吗!", "提示信息

", MessageBoxButtons.OKCancel, https://www.360docs.net/doc/a68591488.html,rmation);

4. if (result == DialogResult.OK)

5. {

6. e.Cancel = false; //点击OK

7. }

8. else

9. {

10. e.Cancel = true;

11. }

12. }

MFC中关闭窗口的几种办法

MFC中关闭窗口的几种办法+MFC中MessageBox的用法MFC中关闭窗口的几种办法: 退出程序用AfxGetMainWnd()->SendMessage(WM_CLOSE); 关闭当前窗口用DestroyWindow( ); 关闭模式对话框用EndDialog(0); MFC中MessageBox的用法 消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合。 1. MessageBox("这是一个最简单的消息框!"); 2. MessageBox("这是一个有标题的消息框!","标题"); 3. MessageBox("这是一个确定取消的消息框!","标题", MB_OKCANCEL ); 4. MessageBox("这是一个警告的消息框!","标题", MB_ICONEXCLAMA TION ); 5. MessageBox("这是一个两种属性的消息框!","标题", MB_ICONEXCLAMA TION|MB_OKCANCEL ); 6. if(MessageBox("一种常用的应用","标题",MB_ICONEXCLAMATION|MB_OKCANCEL)==IDCANCEL) return; 附其它常用属性 系统默认图标,可在消息框上显示 X错误MB_ICONHAND, MB_ICONSTOP, and MB_ICONERROR ?询问MB_ICONQUESTION !警告MB_ICONEXCLAMATION and MB_ICONW ARNING i信息MB_ICONASTERISK and MB_ICONINFORMA TION 按钮的形式 MB_OK 默认 MB_OKCANCEL 确定取消 MB_YESNO 是否 MB_YESNOCANCEL 是否取消 返回值 IDCANCEL 取消被选 IDNO 否被选 IDOK 确定被选 IDYES 是被选

C#窗体间数据传值

C#窗体间数据传值 窗体间数据传递第一种情况的解决方法存在一个主要的缺点,就是窗体间传递的参数数目是固定的,并且类型也是固定的。这是因为,上文中修改了从命名空间System.Windows.Forms 中的Form类派生而得到的Form2类的构造函数,由于构造函数中的参数和类型都是固定的,而主窗体向从窗体传递数据,就是通过构造函数中的参数来实现的,所以就造成了上面的那个缺点。其实在这种方法中还存在一个缺点,就是每一次窗体间的数据传递,就必须构建一个窗体,并且这种数据传递是一次性的。这些缺点对于窗体间传递少量数据,一般不会有太大影响,但如果要传递大量数据,并且要通过主窗体来实时向从窗体传递数据,使用这种方法就勉为其难了。 下面介绍另外一种从主窗体向从窗体传递数据的实现方法,这种方法能够完全解决上面的二个缺点,程序在主窗体中就像操作窗体中加入的组件一样,灵活的操作从窗体。 设计思路 此方法实现二个功能: 其一,主窗体能够实时地向从窗体传送数据,表现为当更改主窗体中的跟踪条(TrackBar)的数值,从窗体中定义的一个Label组件就显示出跟踪条的当前数值; 其二,从窗体能够向主窗体提出数据请求,并且能够获取主窗体中各组件显示的数据。程序表现为,当单击从窗体中的【从Form1中获取数据】按钮,程序能够把主窗体中的二个TextBox 组件显示的内容传递到从窗体,并且通过从窗体中的二个TextBox组件分别显示出来。 第一个功能的实现思路是把从窗体看成是主窗体的一个实例,加入到从窗体中的组件,可以看出是从窗体中定义的一个个变量,由于从窗体中加入的组件的组件缺省定义类型是Private (私有的),所以要想访问这些组件,必须改变为Public(共有的);而第二个功能的实现思路是通过修改Form2的构造函数,构造函数实现功能是通过Form1类的实例(即为主窗体)来创建并初始化Form2类的实例(即为从窗体)。这样对于从窗体来说,主窗体则为其一个实例,从而也就可以向主窗体提出数据请求,当然要把需要访问的各组件定义类型从缺省的Private(私有的)类型修改为Public(共有的)。上述二个功能的实现方法,第二种方法比较复杂,希望各位能够结合后面的具体实现代码来理解。 第二种窗体间的数据传递情况实现步骤 1.首先创建一个Visual C#的项目文件,项目名称为【VC#中不同窗体数据传递方法02】。 2.把Visual Studio .Net的当前窗口切换到【Form1.cs(设计)】窗口,并从【工具箱】中的【Windows窗体】选项卡中拖入下列组件到【Form1.cs(设计)】窗体中,并执行相应操作:·二个TextBox组件,用以输入向Form2窗体传送的数据 ·二个Label组件 ·一个TrackBar组件,名称为trackBar1。 3.把Visual Studio .Net的当前窗口切换到【Form1.cs】窗口,即:Form1.cs的代码编辑窗口。并用下列代码替换替代系统产生的InitializeComponent过程。 private void InitializeComponent ( ) { https://www.360docs.net/doc/a68591488.html,bel1 = new https://www.360docs.net/doc/a68591488.html,bel ( ) ; https://www.360docs.net/doc/a68591488.html,bel2 = new https://www.360docs.net/doc/a68591488.html,bel ( ) ; this.textBox1 = new System.Windows.Forms.TextBox ( ) ; this.textBox2 = new System.Windows.Forms.TextBox ( ) ; this.trackBar1 = new System.Windows.Forms.TrackBar ( ) ; ( (https://www.360docs.net/doc/a68591488.html,ponentModel.ISupportInitialize ) ( this.trackBar1 ) ).BeginInit ( ) ;

窗体的关闭事件

窗体的关闭事件 对于关注对Windows 窗体应用程序中引发的每个事件按次序进行处理的开发人员来说,事件引发的顺序特别重要。 当Windows 窗体应用程序启动时,主窗体的启动事件按以下顺序引发 1、System.Windows.Forms.Control.HandleCreated在为控件创建句柄时发生。 2、System.Windows.Forms.Control.BindingContextChanged 当BindingContext 属性的值更改时发生。注:每个Windows 窗体至少有一个BindingContext 对象,详见MSDN。 3、System.Windows.Forms.Form.Load 在第一次显示窗体前发生。 4、System.Windows.Forms.Control.VisibleChanged 在Visible 属性值更改时发生。注:如果通过编程修改或用户交互更改Visible 属性,则将引发此事件。 5、System.Windows.Forms.Form.Activated 当使用代码激活或用户激活窗体时发生。 6、System.Windows.Forms.Form.Shown 只有在首次显示窗体时才会引发Shown 事件;随后执行的最小化、最大化、还原、隐藏、显 示或无效化和重新绘制操作都不会引发该事件。 当应用程序关闭时,主窗体的关闭事件按以下顺序引发: 1、System.Windows.Forms.Form.Closing 在关闭窗体时发生。注意:在.NET Framework 版本 2.0 中,Closing 事件已过时,应改用 FormClosing 事件。 2、System.Windows.Forms.Form.FormClosing 在关闭窗体前发生,此时可以取消窗体的关闭。 3、System.Windows.Forms.Form.Closed 关闭窗体后发生。注意:在.NET Framework 版本 2.0 中,Closed 事件已过时,应改用 FormClosed 事件。 4、System.Windows.Forms.Form.FormClosed 关闭窗体后发生。 5、System.Windows.Forms.Form.Deactivate 当窗体失去焦点并不再是活动窗体时发生。 注意:当调用Application.Exit 方法以退出应用程序时,不引发Form.Closed 和Form.Closing 事件,但是会激发Form.FormClosed 和Form.FormClosing 事件。 FormClosing :在窗体关闭时,FormClosing 事件发生。窗体关闭时,此事件会得到处理,从而释放与此窗体关联的所有资源。如果取消此事件,则该窗体保持打开状态。若要取消窗体的关闭操作,请将传递给事件处理程序的FormClosingEventArgs 的Cancel 属性设置为true。 FormClosed:在用户或Application 类的Close 方法或Exit 方法关闭窗体后,会发生FormClosed 事件。 若要防止窗体关闭,请处理FormClosing 事件,并将传递给事件处理程序的CancelEventArgs 的Cancel 属性设置为true。可以使用此事件执行一些任务,如释放窗体使用的资源,还可使用此事件保存输入窗体中的信息或更新其父窗体。当窗体显示为模式对话框时,单击“关闭”按钮(窗体右上角带X 的按钮)会隐藏窗体并将DialogResult 属性设置为DialogResult.Cancel。通过在窗体的FormClosing 事件的事件处理程序中设置DialogResult 属性,可以在用户单击“关闭”按钮时重写分配给DialogResult 属性的值。 如果窗体是多文档界面(MDI) 父窗体,则在引发MDI 父窗体的FormClosing 事件之前将引发所有MDI 子窗体的FormClosing 事件。同样,在引发MDI 父窗体的FormClosed 事件之前,将引发所有MDI 子窗体的FormClosed 事件。取消MDI 子窗体的FormClosing 事件不能防止引发MDI 父窗体的FormClosing 事件。但是,取消该事件会将作为参数传递给父窗体的FormClosingEventArgs 类的Cancel 属性设置成false。要强制关闭所有MDI 父窗体和子窗体,请将MDI 父

中国移动短信指令大全

1.发送CXBX到10086,查询当月套餐剩余短信条数。 2.发送CXGFX到10086,查询当月飞信GPRS套餐剩余流量。 3.发送CXGTC到10086,查询当月GPRS套餐剩余流量。 4.发送CXCCT到10086,查询当月超级畅听套餐剩余流量。 5.发送CXGLL到10086,查询当月已使用的GPRS流量总和。 6.发送CXDX120,查询当月可选计划“短信120”剩余短信条数。 7.发送CXDX500,查询当月可选计划“短信500”剩余短信条数。 8.发送CXCXB,查询当月可选计划“彩信包”剩余彩信条数。 9.发送CXIP1000,查询当月可选计划“IP1000”剩余通话时长。 10.发送CXMDX,查询M计划兑换的“短信包(50条/月)”当月剩余短信条数。 11.发送CXMCX,查询M计划兑换的“彩信包(10条/月)”当月剩余彩信条数。 12.发送CXMG,查询M计划兑换的“10M/月的GPRS流量”剩余流量。 信指令短信发送端口办理业务 YE/CXYE 10086 余额查询 KTFX 10086 开通飞信

QXFX 10086 取消飞信 BLHZ 10086 开通短信回执 QXHZ 10086 取消短信回执 BLYY19 10086 办理19元音乐卡套餐BLYY29 10086 ....办理29元音乐卡套餐BLYY39 10086 办理39元音乐卡套餐BLYY59 10086 办理59元音乐卡套餐GPRS5 . 10086 办理GPRS5元套餐GPRS20 10086 办理GPRS20元套餐GPRS50 10086 办理GPRS50元套餐GPRS100 .10086 办理GPRS100元套餐GPRS200 .10086 办理GPRS200元套餐 信指令短信发送端口办理业务 CXGPRS5 .10086 查询GPRS5元套餐CXGPRS20 10086 查询GPRS20元套餐CXGPRS50 10086 查询GPRS50元套餐CXGPRS100 10086 ....查询GPRS100元套餐CXGPRS200 10086 ....查询GPRS200元套餐

中国移动 短信营业厅功能代码一览表 (代码发10086)

短信营业厅功能代码一览表:业务类型及数字代码拼音指令1.话费、优惠及月账单查询101查询当前话费总额/余额CXHF或CXYE 102查询上月账单CXSYZD 103查询当月及历史帐单CXZD#yymm 104查询已用优惠1041查询已用优惠金额CXYH#1 1042查询已用优惠时长、短信及V网时长CXYH#2 105查询已用移动数据流量CXYYSJLL 106余额提醒1061开通余额提醒KTYETX#xx.xx(金额) 1062取消余额提醒QXYETX 1063介绍余额提醒JSYETX 1064状态查询CXYETX 107定制电子账单1071定制短信账单DZZD 1072取消短信账单QXZD 1073定制彩信账单DZCXZD 1074取消彩信账单QXCXZD 1075介绍电子账单JSDZZD 1076状态查询CXDZZD 108查询缴费历史CXJFLS 2.查询已开通业务及服务密码办理201查询本机资费产品CXCP 202查询已开通业务CXYW 203服务密码2031密码申请SQMM#[身份证号码] 2032密码修改BGMM#[原密码]#[新密码] 2033密码重置CZMM#[身份证号码] 2034介绍服务密码JSMM 204查询有效期CXYXQ 205查询信誉度CXXYD 206查询归属地CXGSD#[手机号码] 207查询积分CXJF 210我的10086个性化菜单功能2101开通我的10086KT10086

2102取消我的10086QX10086 2103介绍我的10086JS10086 3.来电显示、彩玲、GPRS等业务办理301来电显示3011开通来电显示KTLDXS 3012取消来电显示QXLDXS 3013介绍来电显示JSLDXS 3014状态查询CXLDXS 302彩铃3021开通彩铃KTCL 3022取消彩铃QXCL 3023介绍彩铃JSCL 3024状态查询CXCL 303移动数据流量套餐3031开通移动数据流量标准资费KTSJLL#BZ 3032开通移动数据流量5元资费KTSJLL#5 3033开通移动数据流量20元资费KTSJLL#20 3034开通移动数据流量50元资费KTSJLL#50 3035开通移动数据流量100元资费KTSJLL#100 3036开通移动数据流量200元资费KTSJLL#200 3037取消移动数据流量套餐QXSJLL 3038移动数据流量套餐资费介绍30381介绍移动数据流量标准资费JSSJLLBZ 30382介绍移动数据流量5元资费JSSJLL5 30383介绍移动数据流量20元资费JSSJLL20 30384介绍移动数据流量50元资费JSSJLL50 30385介绍移动数据流量100元资费JSSJLL100 30386介绍移动数据流量200元资费JSSJLL200 3039状态查询CXSJLL 304来电提醒3041开通来电提醒KTLDTX 3042取消来电提醒3042取消来电提醒QXLDTX 3043介绍来电提醒JSLDTX 3044状态查询3044状态查询CXLDTX 305飞信3051开通飞信KTFX 3052取消飞信3052取消飞信QXFX

C#开发WinForm如何在两个窗体之间传递参数

通过A窗体打开B窗体,然后将参数从A窗体传递到B窗体: 1、通过构造函数实现 (1)编写Class B的构造函数: public B(string canhu) { InitializeComponent(); textBox1.Text = canhu; } (2)在Class A中初始化Class B并进行赋值: private void button1_Click(object sender, EventArgs e) { B b = new B(textBox1.Text); b.ShowDialog(this); } (3)在Class B完成按钮事件: private void button1_Click(object sender, EventArgs e) { MessageBox.Show(textBox1.Text); } 2、通过全局变量实现 (1)在Class B中设置全局变量: public string passText { get { return textBox1.Text; } set { textBox1.Text = value; } } (2)在Class A初始化Class B的时候设置Class B的公有属性: private void button1_Click(object sender, EventArgs e) { B b = new B(); b.passText = textBox1.Text; b.ShowDialog(this); }

通过A窗体打开B窗体,然后将参数从A窗体传递到B窗体,之后在窗口B完成相应操作后将参数返还给A: 这种情况可以通过事件完成: (1)在Class B中设置全局变量: public string Form2Value { get { return this.textBox1.Text; } set { this.textBox1.Text = value; } } (2)在Class B中设置事件: public event EventHandler accept; (3)在Class A中编写如下的函数: void b_accept(object sender, EventArgs e) { //事件的接收者通过一个简单的类型转换得到Form2的引用 B b = (B)sender; //接收到Form2的textBox1.Text this.textBox1.Text = b.Form2Value; } (4)在Class A的按钮事件中完成如下的操作: private void button1_Click(object sender, EventArgs e) { B b = new B(); b.Form2Value = this.textBox1.Text; b.accept += new EventHandler(b_accept); b.ShowDialog(this); } 完成了!

ACCESS如何在窗体间传递参数

ACCESS如何在窗体间传递参数 最简单的方法是使用全局变量传递,简单明了,无需复杂代码,但多窗体情况下无法确定回传对象。 例:有三个窗体FormA; FormB; FormC,都会调用窗体FormD,FormD在计算出值后无法确定回传给哪个窗体。 无需复杂代码,使用Docmd.OpenForm 的 OpenArgs 参数来传递参数,就可很好的解决。发送窗体FormA; FormB; FormC Dim sParameter as String sParameter = https://www.360docs.net/doc/a68591488.html, & ";" & https://www.360docs.net/doc/a68591488.html, & ";" DoCmd.OpenForm "FormD", acForm, , , , , sParameter 接收窗体FormD - 接收 Private Sub Form_Load() Dim sParameterA() As String sParameterA = Split(Me.OpenArgs, ";") ControlName.V alue = Forms(sParameterA(0)).Controls(sParameterA(1)).V alue End Sub 接收窗体FormD - 回传 Private Sub Form_Close() Dim sParameterA() As String sParameterA = Split(Me.OpenArgs, ";") Forms(sParameterA(0)).Controls(sParameterA(1)).V alue = ControlName.V alue End Sub 该方法代码简单、回传明确、便于窗体的重复调用。 在实际开发应用中,经常需要在窗体间传递参数。常用的几种参数传递方法有如下几种: 1。使用openargs 在调用的窗体使用如下语句: doc 在实际开发应用中,经常需要在窗体间传递参数。常用的几种参数传递方法有 如下几种: 1。使用openargs 在调用的窗体使用如下语句: docmd.openform "被调用的窗体",,,,,, "参数值" 在被调用的窗体使用me.openargs即可获取传递过来的参数 2。使用全局变量 先设置一个全局变量,例如:gstrPara,

Excel VBA编程 窗体的事件

Excel VBA 编程 窗体的事件 事件是指在应用程序运行期间,在窗体(或其内的对象)上,由于用户的操作或系统内自身原因而产生的有效动作,例如单击鼠标(Click )、移动鼠标(MouseMove )等都是事件。 VBE 中的对象可识别的事件是预先确定的,并不是所有对象都会具有相同事件。但每个事件都有一个事件过程的框架与之对应,当某一事件发生时,系统将立即执行对应的事件过程,因此,如果想利用这个过程去完成指定的任务,那么用户就必须在这个对应的事件过程中编写程序代码,以便响应发生的事件,否则,即使发生了可识别的事件,系统也不会做任何操作。下面介绍用户窗体中的一些常用事件。 1.Initialize 事件 Initialize 事件用来提供应用程序或用户窗体中的控件、变量等进行初始化。该事件的作用,于类模块中的该事件相同。 2.QueryClose 事件 该事件发生在UserForm 关闭之前。通常用这个事件确保在关闭应用程序之前,应用程序包含的用户窗体中没有未完成的任务。该事件的语法格式如下: 格式:Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 该事件括号内有两个参数。其中,参数Cancel 是一个整数的值,用于指定是否在所有加载的用户窗体中停止QueryClose 事件,当Cancel 的值设置为0以外的任意值时,QueryClose 事件将停止执行,并防止关闭UserForm 与应用程序;参数CloseMode 为一个值或常数,用来指示引起QueryClose 事件的原因。 CloseMode 参数返回下列的值,如表12-4所示。 表12.4 CloseMode 参数的返回值 3.Te rmina te 事 件 该事件用于删除窗体中对象事例的所有引用。Terminate 事件发生在卸载窗体对象之后。如果应用程序为非正常退出,从而导致在内存中删除UserForm 的示例,将不会触发Terminate 事件。例如,在从内存中删除UserForm 之前,应用程序调用了End 语句,则UserForm 不会触发Terminate 事件。 4.Activate 和Deactivate 事件 当运行中的对象变成活动窗口的时候就会发生Activate 事件。而当对象不再是活动窗口时,则会发生Deactivate 事件。下面的情况会引发这两种事件: 提 示 “常数”是执行程序时保持常数值的命名项目。常数可以是字符串、数值、另一常 数、任何(除乘幂与Is 之外的)算术运算符或逻辑运算符的组合。每个主应用程序皆可定义自己的一组常数。用户也可以使用Const 语句定义附加常数。可在代码中的任何地方使用常数代替实际的值。

C#Winform窗体间的数据传递

C# Winform 间的数据交互 除使用全局变量外记录几个其他的方法。 1、修改子窗体的构造函数: 简单地说就是通过修改子窗体Form的构造函数,如下所示: public Frm_Child(string Para1, ArrayList List1, TextBox textBox1, Form. Frm_Main) { InitializeComponent(); } 上面的例子中,为子窗体Frm_Child添加了4个参数,分别是:字符串Para1,字符数组List1,文本控件textBox1和父窗体Frm_Main,下面简单区分一下它们各自的特点: <1> 字符串:单向的值传递,在子窗体中不能通过修改此参数的值来间接改变父窗体中的数据。 <2> 字符数组:引用型传递,可以通过将父子窗体中不同的成员变量指向相同的数组,即可实现变更一方,同时更新对方的数据。 <3> 控件:引用型传递,可以通过修改该控件的数据来直接达到控制父窗体中该控件数据的目的。 <4> 窗体:这个最直接,直接将父窗体传递到子窗体中,我们可以方便地在子窗体中修改父窗体中所有授权为public 的数据。 2、给窗体添加属性或方法: 获取或设置拥有此窗体的窗体。若要使某窗体归另一个窗体所有,请为其Owner 属性分配一个对将成为所有者的窗体的引用。当一个窗体归另一窗体所有时,它便随着所有者窗体最小化和关闭。例如,如果Frm_Child 归窗体Frm_Main所有,则关闭或最小化Frm_Main 时,也会关闭或最小化Frm_Child。并且附属窗体从不显示在其所有者窗体后面。可以将附属窗体用于查找和替换窗口之类的窗口,当选定所有者窗体时,这些窗口不应消失。若要确定某父窗体拥有的窗体,请使用OwnedForms属性。 我们可以通过下面的方式来确定这种从属的窗体关系: Frm_Child form. = new Frm_Child(); form.Owner = this; form.ShowDialog();

窗体组件(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事件加代码可以进行改变窗体大小的时候做特殊处理。

PB窗口之间传递多参数的方法:

PB窗口之间传递多参数的方法: 在PowerBuilder中函数OpenWithParm,CloseWithReturn,OpenSheetWithParm,windowname.OpenUserObjectWithParm等都有一个在进行窗口操作(打开或者关闭)时存入Message消息对象的参数parameter或returnvalue。 消息对象Message有三个属性用于存储这些函数传递给窗口的数据(依赖于窗口操作时参数赋予的类型)。根据parameter / returnvalue参数数据类型的不同,该参数的值保存在Message对象的不同属性中。parameter / returnvalue参数的类型与使用的Message对象属性的对应关系如下表: 参数类型Message对象属性 Numeric(数值) Message.DoubleParm PowerObject(PB对象,包括用户自定义的结构数据类型) Message.PowerObjectParm String(字符串) Message.StringParm 应用程序根据OpenWithParm()等函数的parameter / returnvalue参数类型,从Message 消息对象的不同属性中提取该函数并传送给被打开窗口的值。 在PB中如果是传递一个参数,是很容易实现的。在调用脚本中,可以使用如下代码:openwithparm(w_wantparm,parmtotrans) 接着在打开窗口w_wantparm的open事件中键入: string ls_getparm ls_getparm=message.stringparm … 如果需要传递多个参数,可以使用如下两种方法: 方法一 定义结构变量:lstr_declaredstr,其中包含你想传递的各种参数: 变量名变量类型 ID Unsignedlong Name Character Email Character Homepage Character …… 在调用脚本中,使用如下代码: lstr_declaredstr lstr_parmtotrans lstr_parmtotrans.id=1 lstr_https://www.360docs.net/doc/a68591488.html,="panya" lstr_paramtotrans.email="panya@https://www.360docs.net/doc/a68591488.html," lstr_paramtotrans.homepage=" https://www.360docs.net/doc/a68591488.html,"; … openwithparm(w_wantparm,parmtotrans) 接下来在打开窗口w_wantparm的open事件中,获取结构信息: lstr_declaredstr lstr_getparm integer li_getid string ls_getname string ls_getemail string ls_gethomepage lstr_getparm = message.powerobjectparm li_getid = lstr_getparm.id ls_getname = lstr_https://www.360docs.net/doc/a68591488.html, ls_geemail = lstr_getparm.email ls_gethomepage = lstr_getparm.homepage … 其中,lstr_declaredstr为用户自定义结构数据类型,是值传送

中国移动业务介绍

139邮箱业务简介 139邮箱业务就是中国移动为客户提供得具有多项手机增值服务得电子邮箱业务。您得邮箱帐户名为<手机号码>139、或<别名>139、。139邮箱在具备常规互联网基础邮件服务功能得同时,充分发挥与利用手机得移动性,您可以方便直接地随时随地查瞧、收发邮件。 139邮箱具有良好得手机使用体验。产品功能上有以下特点: * 手机号码就就是邮箱帐号,方便易记,也可设置别名帐号保护隐私; * 新邮件到达时能在手机上免费收到短信提醒,让您不错过任何重要邮件。 * 下载安装PushEmail客户端后,可以随时随地在手机上收发邮件,支持多种附件格式; * 通过发送短信或登录139邮箱定制中国移动话费电子账单服务,可每月在139邮箱中收到移动话费电子账单。 139邮箱业务特色 1、手机号就就是邮箱帐号 手机号就就是邮箱帐号,方便易记。同时也可设置别名帐号,保护私隐。 2、新邮件到达免费短信提醒 新邮件到达时,手机立即收到通知,可以设置普通短信、长短信、免提短信、彩信、五种提醒方式,不错过任何一封重要邮件。 :提醒信息为邮件标题与链接,点击即可上网查瞧邮件。需开通GPRS。 普通短信:为70字以内得通知短信,免费接收。 长短信:提醒信息为350字以内得邮件标题与正文内容,需手机支持,免费接收。 免提短信:邮件到达通知直接显示在手机界面,70字内,需手机支持,免费接收。

彩信:支持高达2万字得邮件标题与正文内容,需手机支持并开通GPRS,接收收费0、3元/条。 3、安装PushEmail软件,通过手机收发邮件 安装PushEmail客户端后可在手机上收取、回复、转发、撰写与发送电子邮件,速度快、流量小,支持多种格式附件下载与上传,让您在无法使用电脑时仍能随时享受电子邮件服务,收发自如。 4、账单定制服务,让您明明白白消费 您还可以在139邮箱内选择“定制账单”服务,每月移动话费账单准时投递,让您明明白白消费。免费开通139邮箱电子账单服务,请编辑短信内容KTZD发送到10658139(部分省份或品牌不能通过此方式开通,详情敬请垂询当地10086) 5、WAP随时随地收发邮件 使用手机登录139邮箱WAP网站收发邮件。 6、发送短、彩信 可通过139邮箱给您得联系人发送短信、彩信,输入更为便捷,同时可给多个亲友发送。 7、客户端发信保存 客户登录139邮箱后,在“设置→基本参数→客户端发信保存”中设置了“保存”后,使用客户端发出得邮件,就会自动保存到139邮箱“已发送”文件夹。 8、一键搬家 使用139邮箱得一键搬家功能,客户可以将自己其它邮箱中得邮件、通讯录搬到139邮箱,以方便管理。进行一键搬家后,在139邮箱可以以其它邮箱地址作为发件人来发送邮件。 9、手机网盘 提供在线网络自由存储空间,可进行文件存储、管理及共享。

c#开发中多窗体传值问题

在主窗体Panel中添加新的窗体(C#,winform开发) 设置收藏 文的要写的是如何将窗体(Form)添加到panel中。 为什么要这样呢? 1)如果用tab控件,整个窗体的控件太多,不易于我们编程; 2)可以更灵活的控制窗体的布局。 我想你一定看过这样的配制信息窗体吧(迅雷的配置页面)。 在你的项目开发中,是否也希望做出这种效果呢? 应该如何设置呢? 单击窗体的左边的按钮,窗体右边的内容会根据单击的按钮变化. 开始是想到的设置思路很简单,主窗体(如上图),右边放置一个Panel控件. 然后根据单击的按钮将子窗体显示在Panel控件上. 在按钮的单击事件中加入下面的代码: 在按钮的单击事件中加入下面的代码: private void button1_Click(object sender, EventArgs e) { ChildForm child = new ChildForm(); this.panel1.Controls.Add(child); child.Show(); } 运行程序

显示“不能将顶级控件添加到一个控件上”出现“不能将顶级控件添加到一个控件上”错误 怎么处理? 在代码中加入 child.TopLevel = false; OK. 新问题又出现了.我们不希望子窗体的标题和边筐也显示在父窗体中,再添加如下代码. child.FormBorderStyle = FormBorderStyle.None; 现在的感觉是不是舒服多了. 但是还隐藏着一个新问题.怎样动态设置子窗体的Size、Location等呢? 我希望在调整父窗体大小时,Panel1 中子窗体的大小也跟随动态自动调整 . 需要加入下面的事件 private void panel1_Resize(object sender, System.EventArgs e) { try { this.child.ClientSize = new System.Drawing.Size(panel1.Size.Width, panel1.Size.Height); } catch(System.Exception Er) { MessageBox.Show(Er.ToString()); } }

C#WinForm窗体事件执行次序(较完整版)

C#WinForm窗体事件执行次序(较完整版) 一、以下是网络上可搜索到的次序 当Windows Form 应用程序启动时,会以下列顺序引发主要表单的启动事件: System.Windows.Forms.Control.HandleCreated System.Windows.Forms.Control.BindingContextChanged System.Windows.Forms.Form.Load System.Windows.Forms.Control.VisibleChanged System.Windows.Forms.Form.Activated System.Windows.Forms.Form.Shown 当应用程序关闭时,会以下列顺序引发主要表单的关闭事件: System.Windows.Forms.Form.Closing System.Windows.Forms.Form.FormClosing System.Windows.Forms.Form.Closed System.Windows.Forms.Form.FormClosed System.Windows.Forms.Form.Deactivate 二、以下是我测试的次序,全部protected override 这些事件,并且在其base.的前后分别处理一次,如下 view sourceprint? 1protected override void OnLoad(EventArgs e) 2{ 3 textBox1.Text += "OnLoad1"+ "\r\n"; 4 base.OnLoad(e); 5 textBox1.Text += "OnLoad2"+ "\r\n"; 6} OnClientSizeChanged1 OnClientSizeChanged2 OnClientSizeChanged1 OnClientSizeChanged2 // Loyout要多次执行 OnLayout1 OnLayout2 OnHanleCreated1 OnHanleCreated2 OnInvalidated1 OnInvalidated2 // 注意这里的一点点变化 OnCreateControl1

c#_两个WIN程序窗口间传递参数的方法【转】

方法一: C#中没有了像https://www.360docs.net/doc/a68591488.html,中的全局变量,那么我们如何实现在不同的页面间传递参数呢? 下面举例说明如何实现这一功能. 1.新建一个项目. 2.在该工程中添加一个窗体Form1. 3.在该窗体中定义静态型字符串变量myTestStr1: public static string myTestStr1=""; 4.在该窗体的构造函数中对该变量进行赋值,并为该窗体类添加属性GetStrValue. public Form_Form1() { InitializeComponent(); myTestStr1="Hello!"; } public string GetStrValue { get { return myTestStr1; } set { myTestStr1=value; } } 5.在该工程中另添加一个窗体Form2. 6.在Form1窗体上添加一个button按钮(name:but_Test); 7.在Form1窗体的but_Test_Click 事件中添加以下代码: private void but_Test_Click(object sender, System.EventArgs e) { Form2 frm1=new Form2(); frm1.ShowDialog(this) ; frm1.Close(); } 8.在Form2窗体上添加一个button按钮(name:but_Yes); 9.在Form1窗体的but_Yes_Click 事件中添加以下代码: private void but_Yes_Click(object sender, System.EventArgs e) { MessageBox.Show (Form_Form1.myTestStr1 ); //直接访问. 显示.结果:" Hello!"

窗体报表操作题答案

窗体报表操作题答案 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

第5章窗体 窗体1-5:2、4、10、16、71窗体6-10:2、3、18、32、35 窗体11-15:47、53、56、59、62窗体16-20:70、72、107、109、130 Access窗体操作题 代码中常用的属性:标题Caption;前景色foreColor;是否可用Enabled;记录源RecordSource 4、 (5)设置命令按钮bTest的单击事件属性为给定的宏对象m1; 本题直接选择事件,运行宏m1 如果要求写入运行宏的代码就为:“宏名称” 即:“m1” 35、 (5)设置所建命令按钮bC的单击事件,使用户单击该命令按钮后,CDID标签的显示颜色改为红色。要求用VBA代码实现。 属性设置为:对象名.属性名=值 窗体为:form.属性名=值如:=time()也可以:=time() 本题是将CDID文本框所带标签改变颜色:CDID_标签.forecolor=vbred或CDID_标 签.forecolor=rgb(255,0,0) 53、(1)将窗体"fEmp"上文本框"tSS"更改为组合框类型,保持控件名称不变。设置其相关属性实现下拉列表形式输入性别"男"和"女"; 选择文本框右键,选择更改为组合框,在属性窗口设置属性行来源:男;女(不要选择控件来源),行来源类型:值列表。 (2)修改查询对象"qEmp"为参数查询,参数为引用窗体对象"fEmp"上文本框"tSS"的输入值; 在查询qemp的设计视图下:添加性别字段,在条件行输入:[forms]![femp]![tss]。注意:性别不显示。 (3)设置窗体对象"fEmp"上文本框"tPa"为计算控件。要求依据"党员否"字段值显示内容:"党员否"字段值为True,显示"党员"两字;"党员否"字段值为False,显示"非党员"三字; =iif([党员否]=true,”党员”,”非党员”) (4)单击"刷新"按钮(名为"bt1"),事件过程动态设置窗体记录源为查询对象"qEmp",实现窗体数据按性别条件动态显示;单击"退出"按钮(名为"bt2"),关闭窗体。 =”qemp” 56、(5)在窗体中有一个"显示全部记录"命令按钮(名称为bList),单击该按钮后,应实现将"tStudent"表中的全部记录显示出来的功能。现已编写了部分VBA代码,请按照VBA代码中的指示将代码补充完整。 Select*fromtstudent可以参考这条语句上面的语句。 59、(5)在窗体中有一个"退出"命令按钮(名称为bQuit),单击该按钮后,应关闭"fStudent"窗体。现已编写了部分VBA代码,请按照VBA代码中的指示将代码补充完整。 62、(5)在窗体中还有"修改"和"保存"两个命令按钮,名称分别为"CmdEdit"和"CmdSave",其中"保存"命令按钮在初始状态为不可用,当单击"修改"按钮后,应使"保存"按钮变为可用。现已编写了部分VBA代码,请按照VBA代码中的指示将代码补充完整。 =true 70、(1)将窗体"fEmp"上文本框"tSS"更改为组合框类型,并保持控件名称不变;

相关文档
最新文档