剛開始學習WinForm做項目
第一個問題就是在登錄的時候驗證正確的時候關閉登錄窗體 顯示主窗體
解決方法:
方法1: 在主窗體中先定義一個login窗體 再用 login 實例化一個窗體 並讓該窗體以對話框的形式顯示, 根據DialogResult的值來判斷是否關閉該登錄窗體 判斷之后在運行主窗體
代碼示例:
主窗體代碼:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Login());
Login log = new Login();
log.ShowDialog();
if (log.DialogResult == DialogResult.OK)
{
Application.Run(new Main());
}
}
login窗體的代碼:
private void button1_Click(object sender, EventArgs e)
{
// 判斷用戶名和密碼是否正確的代碼
if (驗證正確)
{
this.DialogResult = DialogResult.OK;
}
else
{
MessageBox.Show("輸入的用戶名或者密碼錯誤!請重新輸入!");
}
}
——————————————————————————
方法2:
首先程序load主frmMain,主frmMain就會new一個Login並彈出登陸窗口,在登陸窗口驗證密碼正確以后設置DialogResult.OK這一句,再將對話框關閉。關閉以后from_load方法繼續運行判斷彈出的登陸框f2的DialogResult是否是ok,如果是,則加載主表單,如果否,則關閉主表單。
在private void frmMain_Load(object sender, EventArgs e) 方法里添加以下代碼
f2.ShowDialog();
if (f2.DialogResult == DialogResult.OK)
{
MessageBox.Show("hello" );
}
else
{
this .Close();
}
在private void btnLogin_Click(object sender, EventArgs e)里添加以下代碼
if (Reader.HasRows)//判斷是否有查詢到對象的數據
{
this.DialogResult = DialogResult.OK;
this.Close();
}
主要原理就是利用的DialogResult = DialogResult.OK來實現的,