gpt4 book ai didi

c# - 在 C# 中使用多个表单

转载 作者:太空狗 更新时间:2023-10-30 00:58:14 25 4
gpt4 key购买 nike

我正在尝试制作一个针对不同状态使用多种形式(对话框)并遇到一些问题的小项目。我的对话框是登录、设置和显示。应用程序启动时显示登录表单

Application.Run(new login());

用户可以从中打开设置表单,或者如果满足某些要求,则可以打开显示表单。

问题 1:当设置表单打开时,如何让用户登录表单不可用(我希望用户完成设置表单中的字段,然后单击“保存”按钮退出,然后他可以在登录表单中做任何其他事情)

Q2:如何在用户打开显示表单时隐藏登录表单,并在用户关闭显示表单时再次显示。

对于Q1:我没有idea,我只是觉得我可以做和Q2一样的事情。

对于 Q2:我尝试将登录表单对象发送到 Dispaly 表单以使用 ShowDialog() 方法。

在登录表单中,我隐藏表单并像这样显示显示表单:

this.Hide();
Display cat = new Display(ConString, idp, this);
cat.ShowDialog();

在显示表单中,我尝试在退出时关闭对话框并像这样显示登录表单

private void Display_FormClosed(object sender, FormClosedEventArgs e)
{
this.Close();
this.l.ShowDialog();
}

其中 l var 是发送到 Display 构造函数的 Login 对象,类型为 Login。问题是显示表单没有关闭,如果用户再次点击显示,将显示一个新对话框,我想要最多 1 个显示表单实例。

谢谢

最佳答案

Q1 & Q2:在登录表单代码中:

using (SettingsForm frm = new SettingsForm())
{
Hide();
frm.ShowDialog(this);
Show();
}

当一个表单控制另一个表单时,您通常会看到这种情况。 ShowDialog 将停止选择父窗体,您将看到对话框闪烁,系统应该发出声音来指示这一点。

ShowDialog 也会阻塞,直到表单关闭,所以它会一直等到您关闭表单。您可以对生成另一个表单并需要等待它被使用的任何表单重复此代码。

关于c# - 在 C# 中使用多个表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3245247/

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