【发布时间】:2014-08-05 22:43:19
【问题描述】:
我想要什么
我正在创建一个具有两个功能的应用程序。这两种功能都有自己的形式(称为 FactuurForm 和 VerhuurForm)。我有另一个名为 Home 的表单,其中有两个按钮。根据单击的按钮,我希望打开两个表单之一,并完成关闭 Home-form。
我有什么
目前,我有以下代码:
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 是布尔值,在我的 Home 类中初始化为 false。当我点击按钮时,相应的布尔值将翻转为 true,触发 if 语句关闭主表单并打开新表单。
我的问题
尽管我当前的代码有效,但对于这样一个简单的功能来说似乎有点多。我觉得我不需要布尔值,这一切都更容易完成。那么有没有更简单/更好的方法来做到这一点?
我还考虑过创建多个 Main 函数。单击一个按钮将激活相应的新 Main 函数并终止当前的 Main。这甚至可能吗?如果可以,这是一个好的解决方案吗?
【问题讨论】:
-
你应该做
home.Hide();和home.Show(); -
为什么不把代码放在第一种形式的按钮处理事件中?
-
我可以补充一点,因为您使用的是
.ShowDialog();.. 您应该在家调用 dispose。使用.ShowDialog();时,.close不会释放表单对象。您必须致电.dispose。除此之外,我会像你那样做...... -
好而清晰的问题:-)