gpt4 book ai didi

c# - Windows窗体打开其他窗体

转载 作者:太空狗 更新时间:2023-10-30 01:18:56 28 4
gpt4 key购买 nike

我想要的
我正在创建一个具有两个功能的应用程序。这两种功能都有自己的形式(称为 FactuurForm 和 VerhuurForm)。我有另一个名为 Home 的表单,其中有两个按钮。根据单击哪个按钮,我希望打开两个表单之一,然后完全关闭主页表单。

我有什么
目前,我有以下代码:

static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Home home = new Home();
home.ShowDialog();
if (home.kiesFactuur)
{
FactuurForm factuur = new FactuurForm();
home.Close();
factuur.ShowDialog();
}
else if (home.kiesVerhuur)
{
VerhuurForm verhuur = new VerhuurForm();
home.Close();
verhuur.ShowDialog();
}
}
}

kiesFactuur 和 kiesVerhuur 是 bool 值,在我的 Home 类中初始化为 false。只要我点击按钮,相应的 bool 值就会变为真,触发 if 语句关闭主窗体并打开新窗体。

我的问题
虽然我当前的代码有效,但对于这样一个简单的功能来说似乎有点过分了。我觉得我不需要 bool 值,这一切都更容易完成。那么有没有更简单/更好的方法来做到这一点?
我还考虑过创建多个 Main 函数。单击一个按钮将激活相应的新 Main 函数并终止当前的 Main。这甚至可能吗?如果可以,这是一个好的解决方案吗?

最佳答案

我不太明白完全关闭主页表单的必要性。我只是为每个按钮放置 2 个事件处理程序,并在它们上面调用以下代码。当您关闭子表单时,第一个表单将被隐藏和关闭。

    private void ShowSubDialog(Form form)
{
this.Hide(); //makes your main form invisible before showing the subform
form.ShowDialog();
}

private void button1_Click(object sender, EventArgs e)
{
ShowSubDialog(new FactuurForm());
Dispose();
}

private void button2_Click(object sender, EventArgs e)
{
ShowSubDialog(new VerhuurForm());
Dispose();
}

关于c# - Windows窗体打开其他窗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25141349/

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