0

我正在用 C# 编写一个“多屏幕”应用程序。“屏幕”代表程序的不同区域,即设置、受限访问、管理等。

我遇到的问题是当我在一个面板和另一个面板之间转换时。在过渡过程中,整个表格会瞬间出现故障,并且可以看到一些控件的轮廓。面板上的任何文本都显示为具有另一个面板背景的块,并且会发生其他奇怪的事情。

这是我试图解释的一些屏幕截图......

这是我要过渡到的面板应该是这样的:

在此处输入图像描述

以下是过渡过程中发生的情况:

在此处输入图像描述

我有一个用于在面板之间转换的功能。代码如下:

delegate void DtransPanel(object pan1, object pan2);
    private void transPanel(object hide, object show)
    {
        if (InvokeRequired) Invoke(new DtransPanel(transPanel), new object[] { hide, show });
        else
        {
            Panel h = (Panel)hide;
            Panel s = (Panel)show;
            h.Hide();
            Application.DoEvents();
            s.Show();
        }
    }

在图形等方面,我是一个完全的新手。可能有比使用上面的函数更好的方法:P

如果我没有找到类似的问题(我确实搜索过)或者我犯了这个星球上最愚蠢的错误,我深表歉意......

4

1 回答 1

0

您可以尝试使用:

Panel h = (Panel)hide;
Panel s = (Panel)show;
h.Hide();
s.SuspendLayout();
s.Show();
s.ResumeLayout();

这应该意味着您不会看到

于 2013-08-09T07:56:02.500 回答