我有一个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
不会Hide
或Close
?任何的想法?提前致谢。
更新:我的问题已解决。我首先调用UsersListForm
,然后从UsersListForm
的加载事件调用我调用ConfirmationForm,然后使用DialogResult == System.Windows.Forms.DialogResult.OK
,现在每件事都很好:)
答案 0 :(得分:1)
如果您打算在打开MainForm之前请求用户确认,最好的方法是在创建之后调用和确认表单并调用MainForm。 如果您打算在应用程序开头寻求确认,请在Application.Run(new MainForm())之前将调用ConfirmationForm放在Program类中;
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
)来返回验证的成功或失败。见this example