0

私は を持っていますMainFormからMainForm私は を呼び出しますConfirmationForm,

using (var f = new ConfirmationForm())
                f.ShowDialog();

それからConfirmationForm、私は別のものを見せたいUsersListForm

if (ConfirmSuccess)
{
this.Hide; //or this.Close
using (var f = new UsersListForm())
f.ShowDialog();
}

ここで、ConfirmSuccess が true に等しい場合、MainForm意志HideまたはCloseあまりにも。

それを防ぐ方法MainFormはありませんHideClose?何か案が?前もって感謝します。

更新:私の問題は解決しました。最初に を呼び出しUsersListFormて、ロード イベントからUsersListFormConfirmationForm を呼び出してから使用DialogResult == System.Windows.Forms.DialogResult.OKします。すべて問題ありません:)

4

1 に答える 1

1

MainForm を開く前にユーザーの確認を要求することを意図している場合、これを行う最善の方法は、作成後に確認フォームを呼び出し、MainForm を呼び出すことです。アプリケーションの開始時に確認を求める場合は、Application.Run (new MainForm ()); の前の Program クラス内に ConfirmationForm の呼び出しを配置し​​ます。

static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        ConfirmationForm confForm = new ConfirmationForm();
        confForm.ShowDialog();
        Application.Run(new MainForm());
    }
}

ただし、別の呼び出しポイントでアプリケーション内の検証を要求することが意図されている場合は、ShowDialog を使用して ConfirmationForm を呼び出し、その後、目的のフォームを呼び出す必要があります。

しかし、実際に開いているフォームでリクエストを検証し、それを非表示にすることが意図されている場合は、ConfirmationForm の DialogResult プロパティを使用して、( ConfirmationForm.ShowDialog () == DialogResult.OK) を比較して検証の成功または失敗を返すことができます。この例を参照してください

于 2012-09-13T14:38:09.273 に答える