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
