0

私は何百ものフォームを持つアプリケーションに取り組んでおり、フォームはさまざまな方法でそれぞれにリンクされています。

問題は、フォームに認証を適用したいということです。

私がしたことは、私の場合は「AUTH」である共通クラスからすべてのフォームを継承することです

Authで私がしたことは、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 Making HANDLERというメッセージが表示されます。

そして、私がフォームを開いている場所を指しています

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

2 に答える 2

0

MDI 親がバグです。

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

コードをスキップすると

childForm.MdiParent = this;

その後、すべてが機能しました。

于 2012-07-27T12:16:09.257 に答える