C# panel无法正常显示
public partial class VPNMainForm : Form
     {
         public VPNMainForm()
         {
             InitializeComponent();
         }
         private void Form1_Load(object sender, EventArgs e)
         {
             showLogin(loginPanel);
         }         
         //点击登录按钮时触发登录操作
         private void login_Click(object sender, EventArgs e)
         {
             string userName = userNameBox.Text;
             string passWord = passWordBox.Text;
             ......
             showLoginStatus(loginPanel);//加载登录状态panel,问题就出在这!不能在主form中显示这panel!而且发现程序在这个地方会卡几秒,窗口拖不动,这是不是我下面TryConnectVPN()调用了thread.sleep(5000)的原因?另外,当帐号和密码正确时它又会成功显示登录成功的panel,这是为什么?求解
             vpn.TryConnectVPN();//这是调用构造函数,下同
             if (true)
             {
                 showLoginAlready(loginPanel);
             }
             else  
             {
                 showLogin(loginPanel);
                 resultPanel.Visible = true;
             }
         }
        public void TryConnectVPN(string connVpnName, string connUserName, string connPassWord)
         {
             try
             {
                 string args = string.Format("{0} {1} {2}", connVpnName, connUserName, connPassWord);
                 ProcessStartInfo myProcess = new ProcessStartInfo(VPNPROCESS, args);
                 myProcess.CreateNoWindow = true;
                 myProcess.UseShellExecute = false;
                 Process.Start(myProcess);
                 Thread.Sleep(5000);
             }
             catch (Exception Ex)
             {
                 Debug.Assert(false, Ex.ToString());
             }
         }
        //动态加载登录panel
         private void showLogin(Panel p)
         {
             p.Controls.Clear();
             p.Controls.Add(this.autoLoginCheckBox);
             ......
         }
         //加载登录状态panel
         private void showLoginStatus(Panel p)  
         {
             p.Controls.Clear();
             p.Controls.Add(this.yanzheng);//这个是加载picturebox,里面有一张进度条gif图片
             ......
         }
         //加载成功登录提示panel
         private void showLoginAlready(Panel p)
         {
             p.Controls.Clear();
             p.Controls.Add(this.toMin);
             ......
         }
     }
求各位路过的大神帮帮忙~~
------解决方案--------------------thread.sleep(5000)
就是这句代码的原因
------解决方案--------------------界面停滞不动就是因为你线程休眠的原因。登陆状态可以考虑用模态窗体的方式来显示加载步骤吗?
------解决方案--------------------
肯定是thread.sleep(5000) 这个原因
你在主线程里面休眠自然会假死5秒,你可以另外开一个线程,委托给另一个线程休眠进行阻塞。
然后在这里调用那个线程。这样就行了。