View Full Version : 关于From_Load的问题


David Jia
04-06-2007, 01:50 PM
我写一个C#程序的时候,在一个窗体的OnLoad事件中做了一个条件判断,如果判断是,则继续,如果判断否,则关闭本窗体,打开另外的窗体。但实际上我在Load事件里无论用this.close()或this.dispose() 都会出错,说不能在CreateHandler的时候
进行操作,请问这种情况我怎么处理比较好!谢谢。

news.microsoft.com
04-06-2007, 04:41 PM
给Form一个OpenForm的方法

然后在OpenForm方法中写判断
if(true) this.ShowDialog

在调用这个窗体的时候直接执行OpenForm 而不是ShowDialog

Eugene

绉﹂鎰忓姩
04-07-2007, 02:54 AM
load鏃剁獥鍙h繕娌℃湁鍔犺浇
涓嶈兘close 鍙互Application.exit

涔熷彲浠ユ妸浣犵殑鍒ゆ柇閮藉啓鍦‵orm鐨 婵娲讳簨浠堕噷


鈥淒avid Jia鈥濈紪鍐欙細

> 鎴戝啓涓涓狢#绋嬪簭鐨勬椂鍊欙紝鍦ㄤ竴涓獥浣撶殑OnLoad浜嬩欢涓仛浜嗕竴涓潯浠跺垽鏂紝濡傛灉鍒ゆ柇鏄紝鍒欑户缁紝濡傛灉鍒ゆ柇鍚︼紝鍒欏叧闂湰绐椾綋锛屾墦寮鍙﹀鐨勭獥浣撱備絾瀹為檯涓婃垜鍦↙oad浜嬩欢閲屾棤璁虹敤this.close()鎴杢his.dispose() 閮戒細鍑洪敊锛岃涓嶈兘鍦–reateHandler鐨勬椂鍊
> 杩涜鎿嶄綔锛岃闂繖绉嶆儏鍐垫垜鎬庝箞澶勭悊姣旇緝濂斤紒璋㈣阿銆
>
>
>

绉﹂鎰忓姩
04-08-2007, 07:52 AM
浣犵殑鍥炵瓟澶惈绯婁笉娓呮媺

1 if(true)鏄惁瑕佹崲鎴愮湡姝g殑condition
2 杩欎釜expression 鍦ㄤ粈涔堟柟娉(浜嬩欢)涓墽琛
濡傛灉鍦‵orm_Load杩樻槸涓鏍风殑,娌℃湁浠讳綍鍖哄埆



鈥渘ews.microsoft.com鈥濈紪鍐欙細

> 缁橣orm涓涓狾penForm鐨勬柟娉
>
> 鐒跺悗鍦∣penForm鏂规硶涓啓鍒ゆ柇
> if(true) this.ShowDialog
>
> 鍦ㄨ皟鐢ㄨ繖涓獥浣撶殑鏃跺欑洿鎺ユ墽琛孫penForm 鑰屼笉鏄疭howDialog
>
> Eugene
>
>
>
>

news.microsoft.com
04-10-2007, 02:31 AM
可能是我没有说明白吧

一个窗体在打开的过程中,也就是OnPaint过程中是不能够进行关闭的,所以,只能在这个窗体打开之前,也就是ShowDialog之前来做判断,这个时候就需要考虑怎么样来做这个打开,一般的做法是直接在需要打开这个窗体的类中写
Form frm = new Form();
frm.ShowDialog();
这样就不能在ShowDialog后来判断了
所以需要把这个Form的显示方法封装起来,在Form中加一个OpenForm方法
void OpenForm(){
if(条件判断)
this.showDialog();
}
在外面使用的时候就是
MyForm frm = new MyForm();
frm.OpenForm();

希望我这一下说清楚了

Eugene

Auser
04-10-2007, 08:03 AM
因为窗体在Load时还没有完全建立,因此对窗体的操作一般都是无效的。

试试看,把这些内容放在窗体的 Shown 事件里面,能不能达到您的要求?^_^

谢谢~~

娓呴
04-11-2007, 09:14 AM
鍦ㄧ涓娆℃樉绀虹殑鏃堕棿閲屽鐞嗕綘鐨勫垽鏂
Shown 浜嬩欢閲

From_Load 鏄姞杞界獥浣撶殑鏃跺欙紝杩欐槸鍙兘close杩樻病鍏宠仈鍒拌繖涓彞鏌勫惂~锛