2013-11-01 22 views
0

面板p2直到面板1的宽度为0才显示。但是,如果我取消注释messageBox代码,则p2会在出现messageBox时呈现。这导致我认为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; 
    } 

回答

0

p2.Refresh()。当你在早上6:00写代码时会发生这种情况。 : - |

+0

就是这样,当你在下午2:00不了解UI调度器循环时会发生什么:) –