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