文档库 最新最全的文档下载
当前位置:文档库 › C#窗体关闭按钮禁用

C#窗体关闭按钮禁用

C#窗体关闭按钮禁用

C#中如何去除窗体默认的关闭按钮

很多时候,在winform的设计下,会遇到新建窗体时不需要用到默认的关闭按钮的情况,而是用另外设置关闭 button或其他控件来控制窗体的关闭。

之前我遇到这个问题时,问了很多朋友,都没找到方法,VS的窗体属性里也没那一项,在MSDN里也没有相关的资料。但后来偶然发现,原来办法是很简单的,只需要在初始化窗体的时候不显示那关闭按钮就可以了。

具体方法是,加上一句“ this.ControlBox = false;”。如下:

public Form1()

{

InitializeComponent();

this.ControlBox = false; // 设置不出现关闭按钮

}

而对最大最小化按钮的显示,则可以在窗体的属性项里设置即可。

另外,如果需要保留那关闭按钮的显示,但又不起作用,则可以加上几句代码屏蔽掉它,具体代码如下:

//禁用窗体的关闭按钮

private const int CP_NOCLOSE_BUTTON = 0x200;

protected override CreateParams CreateParams

{

get

{

CreateParams myCp = base.CreateParams;

myCp.ClassStyle = myCp.ClassStyle | CP_NOCLOSE_BUTTON;

return myCp;

}

}

下面说一下几个不是只是让关闭按钮隐藏但是可以达到类似效果的方法:

1.将ControlBox属性设为False。这种方法是让标题栏中的除了标题名以外的其他的全部隐藏,也就是把图标,最小化、最大化和关闭按钮全部隐藏。

2.让关闭按钮失效,方法是在事件里面找到FormCloseing事件,编辑该事件,在里面写上一条语句“e.Cancel = true;”,这样关闭按钮就失效了,按快捷键“Alt+空格+C”也关闭不了,只有用任务管理器关了,或者用一条语句(“Application.Exit();”)关闭该生成的应用程序,用“Alt+F4”也能关闭。

3.将FormBoderstyle属性设置为None。这种方法是将整个标题栏去掉了。这样也是用快捷键“Alt+空格+C”关闭不了,只有用任务管理器关了,或者用一条语句(“Application.Exit();”)关闭生成的该应用程序,用“Alt+F4”也能关闭

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 是被选

qq为什么在聊天窗口的下方放一个“关闭”按钮

QQ为什么在聊天窗口的下方放一个“关闭”按钮? 【牛乐的回答(59票)】: 别整没用的,开口闭口一大堆什么原则,中国和外国思维方式还不一样呢,拿着老外的原则装,当年QQ刚出来的时候,懂互联网的不多,不是快捷键谁都会用,你知道一个破滚轮鼠标跑一个窗口然后再点那个小破×多麻烦呢。那个地方是最好的,还标了“关闭”两个字,简单明了,甚至当年不懂浏览器的人都会玩QQ,估计腾讯自己都没有意识到这是多棒的设计。 我想到一个小故事,在这里虽说不很合适,但看到那些开口闭口讲原则的人还是忍不住发上去。 迪斯尼乐园的设计非常严格,包括其中的一些细微的路径也极为严谨精致。1971年,伦敦国际园林建筑艺术研讨会上,迪斯尼乐园的路径设计就获得过“世界最佳设计”称号。当时迪斯尼乐园的总设计师是格罗培斯。迪斯尼的路径设计获奖后,许多记者去采访这位大名鼎鼎的设计师,希望他公开自己的设计灵感与心得。格罗培斯说:“其实那不是我的设计,而是游客的智慧。”接着,他公开了路径的修筑过程———迪斯尼乐园主体工程完工后,格罗培斯宣布暂时停止修筑乐园里的道路,接着指挥工人们在空地上撒上草种。接下来,乐园宣布提前试行开放。五个月后,乐园里绿草茵茵,但草

地上也出现了不少窄宽不一、幽雅自然的小径,那是蜂拥而来的游客们践踏出来的。格罗培斯马上命令工人们根据草地上出现的小路铺设人行道———就是这些由游客们自己不 知不觉中用脚步“设计”出来的路径,在后来世界各地的园林设计大师们眼中成了“幽雅自然、简捷便利、个性突出”的优秀设计,也理所当然被专家们评为“世界最佳”。 肯定有人说,这也是**原则里的。好吧,脑筋刻板至此,还做什么产品经理。死套公式堆积木都堆不好啊。这个故事放这里的意思是说,用户啊,一定站在用户角度啊笨蛋。 【阿企的回答(44票)】: 新员工培训时,cdc的同事讲过这个案例,大意是,后台数据显示,一半的人要点关闭,就保留了。我们自以为了解用户习惯,设计原则,但事实往往不是那回事。数据会说话,尤其是面对海量用户时。 【nicing的回答(16票)】: 接着@Helium Chan 的答案说: 发送消息后,最常用的操作就是关闭窗口,放在这就是为了方便点击。 如果非要找点科学依据,那就是“费茨法则”。费茨法则是用户界面设计人机工程学中的著名原则,其基本思想是: 目标越远,鼠标到目标所花费的时间就越长。

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.wendangku.net/doc/a28830838.html,bel1 = new https://www.wendangku.net/doc/a28830838.html,bel ( ) ; https://www.wendangku.net/doc/a28830838.html,bel2 = new https://www.wendangku.net/doc/a28830838.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.wendangku.net/doc/a28830838.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 父

Java如何去掉JFrame上的最大化最小化和关闭按钮

Java-如何去掉JFrame上的最大化最小化和关闭按钮 在JDK1.4以前,我们只有一种方式来去掉窗口的标题栏,那就是直接使用JWindow,用JWindow来代替JFrame使用。但用过JWindow的人一定知道,JWindow在操作系统的任务栏是不可见的,这样我们就无法在几个视窗之间来切换到这个窗口了。 使用JWindow也是很多人知道的一种去掉标题栏的方式。但从Java1.4开始,有一种新的方式可以使用,我们来看看。 现在我们创建一个类并继承于JFrame, public class DecoratedFrame extends JFrame { public DecoratedFrame() { this.getContentPane().add(new JLabel("Just a test.")); this.setUndecorated(true); // 去掉窗口的装饰 this.getRootPane().setWindowDecorationStyle(JRootPane.NONE);//采用指定的窗口装饰风格 this.setSize(300,150); } public static void main(String[] args) { JFrame frame = new DecoratedFrame(); frame.setVisible(true); } } 请看加了注释的两行,要去掉标题栏,关键代码就是这两行,第1行去掉窗口的装饰,第2行为窗口指定头饰风格。在这里,可以通过调用 this.getRootPane().setWindowDecorationStyle()方法为窗口指定以下的装饰风格: NONE 无装饰(即去掉标题栏) FRAME 普通窗口风格 PLAIN_DIALOG 简单对话框风格 INFORMATION_DIALOG 信息对话框风格 ERROR_DIALOG 错误对话框风格 COLOR_CHOOSER_DIALOG 拾色器对话框风格 FILE_CHOOSER_DIALOG 文件选择对话框风格 QUESTION_DIALOG 问题对话框风格 WARNING_DIALOG 警告对话框风格 在使用Jframe的时候,普遍都会有标题栏,还有最小化,最大化,关闭按纽的,还要实现拖

中国移动短信指令大全

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元套餐

如何使用键盘退出或关闭窗口

如何使用键盘退出或关闭窗口,(ESC键除外,是游戏,电影之类的)最好回答者能多教些同样的技巧? 如何使用键盘退出或关闭窗口,(ESC键除外,是游戏,电影之类的)最好回答者能多教些同样的技巧? 蓝兰丽 2009-05-14 14:38:31 发布 2个回答 ?回答 ?liangjingfang | 2009-05-14 14:58:50 ?有0人认为这个回答不错 | 有0人认为这个回答没有帮助 ?一、在WINDOWS中最常用到的几组快捷键及一些特殊键位 (一)以下是一些Windows常用快捷键(适用于WINDOWS系列的系统及相对应命令的程序) CTRL+C――――复制 CTRL+X――――剪切 CTRL+V――――粘贴 CTRL+S――――保存 CTRL+Z――――撤消 DELETE―――删除或SHIFT+DELETE―永久删除所选项 CTRL+A――――选中全部内容。 ALT+TAB―――切换当前程序 ALT+F4 ―――关闭当前应用程序 (二)特殊键位说明及功能 Windows键位于CTRL和ALT之间带有窗口图样的键调用开始菜单或和其它键组合使用 BACKSPACE键退格键消除空格或向左删除文档 SPACEBAR 空格键输入空格或在某复选框中选取 Application 键微软自然键选中某个项目时显示其快键菜单 Shift 上档键与其它键一起使用 Ctrl 控制键与其它键一起使用 Alt 组合键激活系统程序菜单或配合其它键一起使用 Tab 制表键在程序或菜单之间切换 Pause/break 暂停键电脑开机自检时按下可暂停当前屏幕,按下继续 Scroll lock 锁屏键当处于滚屏状态时按下该键停止 Print Screen/SysRq 截屏键截取当前屏幕到粘贴板 NumLock 数字开关键小键盘数字开关键 Caps Lock 大小写开关键 二、几种常用程序中的快捷键应用

中国移动 短信营业厅功能代码一览表 (代码发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.wendangku.net/doc/a28830838.html, & ";" & https://www.wendangku.net/doc/a28830838.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 语句定义附加常数。可在代码中的任何地方使用常数代替实际的值。

最新46自定义桌面最大化最小化和关闭按钮汇总

46自定义桌面最大化最小化和关闭按钮

自定义桌面最大化最小化和关闭按钮 1、取消窗体修饰 JFrame窗体默认采用本地系统的窗体修饰,如里需要根据我们的想法来定的话,那我们我先要取消窗体修饰setUndecorated()方法来实现。 public void setUndecorated(boolean undecorated) 2、设置按钮外观 设置鼠标经过图标 setIcon()方法可以为鼠标设置普通状态图标之外,还可以设置按钮的其他状态图标,如设置鼠标经过按钮时显示图标。setRolloverIcon(); public void setRolloverIcon(Icon rolloverIcon) 说明: rolloverIcon:鼠标经过按钮时显示图标对象 取消鼠标外观 button.setFocusPainted(false);//取消焦点绘制 button.setBorderPainted(false);//取消边框绘制 button.setContentAreaFilled(false);//取消内容绘制 这3个方法分别取消了按钮的焦点绘制、边框绘制以及内容绘制,这样按钮就没有外观和任何效果了,就象窗体取消修饰效果一样。 3、改变窗体状态 自定义最小化,最大化,都需要控制窗体的状态,这需要通过JFrame类的setExtendedState() public void setExtendedState(int state) state参数说明

NORMAL 默认大小的窗口 MAXIMISED_HORIZ 水平方向最大化窗口MAXIMIZED_VERT 垂直方向最大化窗口MAXIMIZED_BOTH 水平与垂直方向都最大化的窗口package com.swing05; import java.awt.Graphics; import java.awt.Image; import javax.swing.JPanel; /** * 带背景的面板组件 * * @author ZhongWei Lee */ public class BackgroundPanel extends JPanel { /** * 背景图片 */ private Image image; /** * 构造方法 */ public BackgroundPanel() { super(); ////如果为 true,则该组件绘制其边界内的所有像素 setOpaque(false); //布局格式 setLayout(null); } /** * 设置图片的方法 */ public void setImage(Image image) { this.image = image; } @Override

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.wendangku.net/doc/a28830838.html,="panya" lstr_paramtotrans.email="panya@https://www.wendangku.net/doc/a28830838.html," lstr_paramtotrans.homepage=" https://www.wendangku.net/doc/a28830838.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.wendangku.net/doc/a28830838.html, ls_geemail = lstr_getparm.email ls_gethomepage = lstr_getparm.homepage … 其中,lstr_declaredstr为用户自定义结构数据类型,是值传送

JQuery弹出层,点击按钮后弹出遮罩层,有关闭按钮

JQuery弹出层,点击按钮后弹出遮罩层,有关闭按钮 jQuery弹出层效果