gpt4 book ai didi

c# - 在 this.Dispose() 之后使用 form.ShowDialog();

转载 作者:行者123 更新时间:2023-12-01 21:13:18 30 4
gpt4 key购买 nike

我正在从另一个表单启动一个表单。我希望在显示子表单之前处理父表单,因此我使用:

 this.Dispose();
form.ShowDialog();

表单已显示,这是正确的方法吗?表单是通过从主表单调用 ShowDialog() 来启动的。我希望在主表单可编辑之前关闭这些表单。

EDIT:

这是基本流程

主窗体>(Showdialog)>form1>(dispose+showDialog)>form2(dispose)>主窗体

最佳答案

如果您想确保在显示子级之前父级不可见,并且您希望父级关闭:

var f = new ChildForm();
this.Hide();
f.Show();
this.Close();

ShowDialog() 表示“显示此表单并在关闭后返回给我”。这不是您所描述的您希望发生的情况。

根据您的评论,从主表单创建和显示 form2 可能更有意义。

在主窗体中:

   DialogResult form1Result;
using (var f = new Form1())
{
form1Result = f.ShowDialog();
}
if (form1Result == DialogResult.OK)
{
using (var f2 = new Form2())
{
f2.ShowDialog();
}
}

在 Form1 事件中,您最初生成了 Form2

this.DialogResult = DialogResult.OK;
this.Close();

关于c# - 在 this.Dispose() 之后使用 form.ShowDialog();,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11187843/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com