日期:2014-05-19  浏览次数:20995 次

在form_Load事件中进行某些判断,通不过则不加载窗体。能否做到?
请教:要求在form_Load事件中进行某些判断,通不过则不加载窗体。请问能否做到?(由于某些条件限制,不能在窗体frmOrder.Show()之前进行判断)  
代码:        
                private   void   frmOrder_Load(object   sender,   EventArgs   e)
                {
                        this.Cursor   =   Cursors.WaitCursor;

                        try
                        {
                                ……              
                        }
                        catch   (Exception   ex)
                        {
                                MessageBox.Show(ex.Message);
                                this.Close();   //这句不可行,出错。怎么改?
                        }
                        finally
                        {
                                this.Cursor   =   Cursors.Default;
                        }
                }

------解决方案--------------------
对于 MainForm 的加载控制
最好在 Program.cs 里 new MainForm 之前做判断
------解决方案--------------------
自己写一个public方法,比如ShowME

在里面判断,不过则不加载窗体

调用frmOrder.ShowME()

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

最新版本:20070212

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
------解决方案--------------------
你不能在Load事件里关闭本窗体!

你最好把这个操作放到构造对象之前,就是如果条件不成立就不New这个窗体.

你可以把条件拿出来做为公用的部分来判断,而不要放到窗体的Load事件里.
------解决方案--------------------
最好自己写一个重写show方法,测试通过就base.show,否则就...
------解决方案--------------------
load事件中不能够去写关闭代码很多WinForm类的语言都是这样的。
还是应该将判断写在show方法之前。
------解决方案--------------------
最好的方法是将判断放到构造对象之前...

如果你没有更改,默认应该是在program.cs中..

类似这样..
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if (满足条件)
{
Application.Run(new Form1());