winforms - 将一个窗体移动到另一个 winform - C#

标签 winforms mdi

我有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 表单)。只有一个事件表单。

谢谢, 卡西克

最佳答案

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

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

阅读这篇 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 都是“模态”的吗?

关于winforms - 将一个窗体移动到另一个 winform - C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1463513/

相关文章:

c# - 加载 XML 文档并在 TreeView 中显示它

c# - 当我的窗口的那部分被始终在顶部的窗口遮挡时,如何防止我的自定义工具提示代码绘制?

c# - 为什么对接不能正确适用于 winforms 中的现有组框

c# - 作为 MDI 子窗口的程序

c# - OwnerDraw ComboBox with VisualStyles

c# - DataGridView 数据绑定(bind)到 List<List<T>>

c++ - Qt/C++ : Having an MDI child call a function of its parent?

c# - 如何从 C# 中的 mdi 容器窗体的可用空间设置子窗体基数的大小?

c# - 如何识别活跃的子窗体并触发通用方法(每个子窗体中都存在)?

vb6 - 如何在 VB6 中显示 MDI 表单级别的消息