滑动面板不可见/延迟油漆问题的可见性?

时间:2013-11-01 10:58:20

标签: winforms panel sliding

面板p2直到面板1的宽度为0才显示。但是,如果我取消注释消息框代码,则在消息框出现时呈现p2。这让我认为C#本身延迟了p2上的重绘,直到强制UI绘制的其他事件(例如,messageBox)。

我怎样才能解决这个问题?

    private void SlidePanel(UIPanel p, UIPanel p2)  //, Direction d)
    {
        int prevWidth = p.Width;
        PanelDockStyle prevDock = p.DockStyle;
        p.DockStyle = PanelDockStyle.Left;

        p2.Show();

        while (p.Width > 0)
        {
            p.Width -= (p.Width > 4 ? 4 : p.Width);
            Thread.Sleep(1);

            //if (p.Width < 400)
            //{
            //    MessageBox.Show("Ha");
            //    break;
            //}
        }

        p.Hide();
        p.DockStyle = prevDock;
        p.Width = prevWidth;
    }

1 个答案:

答案 0 :(得分:0)

p2.Refresh()。这就是您在早上6点编写代码时会发生的情况。 : - |