【问题标题】:How to avoid flickering in Main Form while try to hide and show the child forms尝试隐藏和显示子窗体时如何避免主窗体闪烁
【发布时间】:2016-02-16 10:22:21
【问题描述】:

要求是通过在主窗体中隐藏现有子窗体来显示子窗体。

它工作正常,但在主窗体中闪烁。可以请分享一些建议。

     void Form1Btn_Click(object sender, System.EventArgs e)
    {            
        var form2 = new Sample2Form();
        this.Hide();
        form2.ShowDialog(mainform);
    }

【问题讨论】:

  • 当然它会“闪烁”,您隐藏了一个表单并显示了另一个表单。闪烁是隐藏和重新显示。当屏幕上的某些内容发生变化时,它会闪烁。你预计会发生什么?

标签: .net winforms c#-4.0


【解决方案1】:

您可以将内容添加到UserControl。因此,您拥有的每个表单都有一个 UserControl。

然后您创建一个根窗体,其中包含一个(根)面板。

要在表单中显示创建的 UserControl,请执行以下操作:

rootPanel.Controls.Add(yourUserControl);

当您现在想要在两个 UserControl 之间切换时,您可以将 rootPanel 的内容替换为子 UserControl:

rootPanel.Controls.Clear();
rootPanel.Controls.Add(yourChildControl);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多