using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Threading;namespace VS11{ public partial class FrmLogin : Form { public delegate void Action(); public FrmLogin() { InitializeComponent(); } private void btnLogin_Click(object sender, EventArgs e) { Action action = new Action(this.Login); action.BeginInvoke(null, null); } private void btnExit_Click(object sender, EventArgs e) { this.Close(); } private void Login() { this.btnLogin.Invoke(new Action(() => { this.btnLogin.Enabled = false; })); this.txtUserName.Invoke(new Action(() => { this.txtUserName.Enabled = false; })); this.txtPassWord.Invoke(new Action(() => { this.txtPassWord.Enabled = false; })); this.libMessage.Invoke(new Action(() => { this.libMessage.Text = "正在連結資料庫..."; })); Thread.Sleep(1000); this.libMessage.Invoke(new Action(() => { this.libMessage.Text = "正在查詢使用者表..."; })); Thread.Sleep(1000); this.libMessage.Invoke(new Action(() => { this.libMessage.Text = "正在驗證使用者名稱..."; })); Thread.Sleep(1000); this.libMessage.Invoke(new Action(() => { this.libMessage.Text = "正在驗證密碼..."; })); Thread.Sleep(1000); this.libMessage.Invoke(new Action(() => { this.libMessage.Text = "使用者登入成功..."; })); this.btnLogin.Invoke(new Action(() => { this.btnLogin.Enabled = true; })); this.txtUserName.Invoke(new Action(() => { this.txtUserName.Enabled = true; })); this.txtPassWord.Invoke(new Action(() => { this.txtPassWord.Enabled = true; })); } }}