winform中load事件是窗體加載的時候執行的時間。在執行的時候,窗體還沒顯示出來。而Shown事件窗體已經顯示出來,控件加載完成,需要注意的是:如果控件設置了背景圖片,那么控件的背景顏色是不顯示的。如果做自動登陸,需要窗體顯示完成顯示幾秒。可以用Timer控件。而不是在shown中暫停線程。
#region 窗體加載時如果記住密碼,加載密碼、用戶名;如果自動登錄,窗體加載成功后,2s執行自動登錄 /// <summary> /// 窗體加載時如果記住密碼,加載密碼、用戶名;如果自動登錄,窗體加載成功后,2s執行自動登錄 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Login_Load(object sender, EventArgs e) { if (getIsRemberPassword()) { this.txt_UserName.Text = getUserNameByXml(); this.txt_Password.UseSystemPasswordChar = true; this.txt_Password.Text = getUserPasswordByXml(); this.chk_RemberPwd.Checked = true; } if (getIsAutoLogin()) { this.chk_AutoLogin.Checked = true; this.chk_RemberPwd.Enabled = false; System.Timers.Timer timer_Login = new System.Timers.Timer(500); timer_Login.Elapsed += timerLogin; timer_Login.AutoReset = false; timer_Login.Enabled = true; } } #endregion #region 自動登錄事件 /// <summary> /// 自動登錄事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void timerLogin(object sender, System.Timers.ElapsedEventArgs e) { if (userlogin() > 0) { this.DialogResult = DialogResult.OK; } } #endregion