0

我正在开发一个具有数百个表单的应用程序,并且表单以多种方式与每个表单相关联。

问题是我想对表单应用身份验证。

我所做的是从一个公共类继承所有形式,在我的情况下它是“ AUTH

在 Auth 中,我所做的是 Override OnLoad 方法,在这里检查是否满足某些条件,然后显示表单,否则隐藏它并显示其他表单。

我的代码是:

public class Auth : Telerik.WinControls.UI.RadForm
{

    protected override void OnLoad(EventArgs e)
    {
        if (<Some Condition>)
        {
            base.Hide();

            frmAccessDenied fs = new frmAccessDenied();

            fs.Show();

            base.OnLoad(e);

        }
        else
        {
            base.OnLoad(e);
        }

    }

}

在这种情况下发生的事情是它打开了 frmAccessDenied 但应用程序崩溃说Error Creating HANDLER

并指出我在哪里打开表格

                                        Form childForm = new frmMyFORM();
                                        childForm.MdiParent = this;
       **==>>>Crashed HERE**            childForm.Show();
4

2 回答 2

0

您可以在主程序文件中检查条件。在 Main 方法中,您将拥有如下内容:

public static void Main(string[] args) {
    // Starts the application.
    if (<Some Condition>)
    {
        Application.Run(new frmAccessDenied());
    }
    else Application.Run(new Form1());
}
于 2012-07-26T15:07:00.980 回答
0

MDI 父级是错误。

 Form childForm = new frmMyFORM();
                                    childForm.MdiParent = this;
   **==>>>Crashed HERE**            childForm.Show();

如果我跳过代码

childForm.MdiParent = this;

然后一切正常。

于 2012-07-27T12:16:09.257 回答