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 时,MainFormwill Hideor Closetoo。

如何防止MainForm意志不HideClose?任何想法?提前致谢。

更新:我的问题已解决。我首先调用UsersListForm并从UsersListForm我调用 ConfirmationForm 的加载事件中调用,然后我使用DialogResult == System.Windows.Forms.DialogResult.OK,现在一切都很好:)

4

1 回答 1

1

如果您的意图是在打开 MainForm 之前请求用户确认,那么最好的方法是在创建它并调用 MainForm 之后调用和确认表单。如果您的意图是在应用程序开始时寻求确认,请将调用 ConfirmationForm 放在 Program 类中 Application.Run (new MainForm ()) 之前;

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 回答