【问题标题】:Move one form to another winforms - C#将一个表单移动到另一个 winforms - C#
【发布时间】:2009-09-23 01:27:58
【问题描述】:

我有 2 个 winforms Form 1 和 Form 2。我在 form1 中有 button1,当我从 form1 点击 button1 时,我会显示 form2。

            Form2 ins = new Form2();
            ins.MdiParent = this.MdiParent;
            this.Hide();
            ins.ShowDialog();

当 button1 被点击时,我隐藏了 form1 以显示 form2。这会产生轻弹效果,我需要删除此轻弹。我如何打开/重定向到另一个表单(我应该一次只显示一个表单,并且不应该显示任何顶部菜单(如果我使用 MDIParent 表单)。只有一个活动表单。

谢谢, 卡西克

【问题讨论】:

    标签: winforms mdi


    【解决方案1】:

    这听起来有点像您正在尝试创建一个 Web 样式的 UI,其中用户从一个“页面”(由表单表示)到另一个。

    与其使用单独的表单实现这样的 UI,不如使用托管在单个父表单上的 UserControl 来实现。

    阅读这篇 MSDN 文章,其中包含带有示例代码的下载。这是设计这种用户界面的一个很好的演练:

    IUIs and Web-Style Navigation in Windows Forms, Part 1

    IUIs and Web-Style Navigation in Windows Forms, Part 2

    编辑

    如果您打算显示两个单独的表单,是否有任何理由需要以模态方式显示第二个表单?能不能简单的展示一下,然后隐藏原来的?

    form2.Show();
    form1.Hide();
    

    ... 或者您是否还有另一种 form1 和 form2 都是“模态”的表单?

    【讨论】:

    • 谢谢马特。我有更多表单,但在某一时刻应该只有一个表单可见。
    【解决方案2】:

    从一页 (form1) 转移到另一页 (form2) 假设form1 包含一个名为“SAVE”的按钮 我们必须在“保存”按钮的点击事件中编写以下代码

    form2 f2=new form2();
    f2.Show();
    

    【讨论】:

      【解决方案3】:

      如果你想在任务栏上显示它,我认为winforms上有一个属性。

      【讨论】:

        【解决方案4】:

        我可以澄清您对如何从一个 form1 重定向到 form2 的疑问

        例如: 在form1中放置一个链接,然后在其中编写以下代码

        form2 ins=new form2();
        ins.show();
        

        【讨论】:

          【解决方案5】:

          使用关闭选项代替隐藏。

          Form1 formObject = new Form1();
          formObject.Close();
          

          或者干脆

          this.Close();
          

          【讨论】:

            猜你喜欢
            • 2011-08-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-04-15
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多