c# - 如何从另一个表格打开一个新表格

标签 c# .net winforms .net-2.0

我有一个使用 ShowDialog 方法打开的表单。在这种形式中,我有一个名为“更多”的按钮。 如果我们点击“更多”,它应该会打开另一个表单并关闭当前表单。

在 More Button 的 Click 事件处理程序上,我编写了以下代码

MoreActions objUI = new MoreActions (); 
objUI.ShowDialog();
this.Close();

但实际情况是,它并没有关闭第一个表单。所以,我将这段代码修改为

MoreActions objUI = new MoreActions (); 
objUI.Show();
this.Close();

在这里,第二个表单正在显示,并且在几秒钟内两个表单都关闭了。

谁能帮我解决问题。我需要做的是,如果我们点击更多按钮,它应该打开另一个表单并关闭第一个表单。

任何形式的帮助都会对我很有帮助。

最佳答案

在我看来,主窗体应该负责打开两个子窗体。这是一些伪造的解释我会做什么:

// MainForm
private ChildForm childForm;
private MoreForm moreForm;

ButtonThatOpenTheFirstChildForm_Click()
{
    childForm = CreateTheChildForm();
    childForm.MoreClick += More_Click;
    childForm.Show();
}

More_Click()
{
    childForm.Close();
    moreForm = new MoreForm();
    moreForm.Show();
}

您只需在第一个 child 中创建一个简单的事件 MoreClick。这种方法的主要好处是您可以根据需要复制它,并且可以非常轻松地为某种基本工作流程建模。

关于c# - 如何从另一个表格打开一个新表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3965043/

相关文章:

c# - 等待和并行

c# - Winrt - 根据出现的位置调整弹出窗口

c# - 如果 XElement 上不存在 XAttribute 默认值

c# - 使用 Asp.Net 赢得应用商店

c# - List<T>.Enumerator 的 Reset 方法的行为

c# - 如何在 XmlDocument 中插入 DOCTYPE 元素

c# - 存储库模式中的 IQueryable 与 IEnumerable,延迟加载

c# - 如何从 ListView 复制单个子项?

c# - 在winform中获取程序的文件夹路径

c# - 找不到类型或命名空间名称(存在引用)