C# winform主界面打開并關(guān)閉登錄界面的方法
在winform 界面編程中,我們有時(shí)候要在主界面打開之前先顯示登錄界面,當(dāng)?shù)卿浗缑嬗脩粜畔⑿r?yàn)正確后才打開主界面,而這時(shí)登陸界面也完成使命該功成身退了。
目前有兩種方法可實(shí)現(xiàn):
方法1. 隱藏登錄界面
Program.cs 中代碼如下:
/// <summary>
/// 應(yīng)用程序的主入口點(diǎn)。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Login());
}
Login.cs 中代碼如下:
/// <summary>
/// login
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnLogin_Click(object sender, EventArgs e)
{
if (txtPassword.Text == "12345678")
{
UI ui = new UI();
this.Visible = false;
ui.ShowDialog();//此處不可用Show()
this.Dispose();
this.Close();
}
else
{
MessageBox.Show("Password is incorrect ", "Prompt message",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
/// <summary>
/// exit
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnExit_Click(object sender, EventArgs e)
{
this.Dispose();
this.Close();
}
方法2. 登錄界面以 dialog形式打開,返回登錄結(jié)果
Program.cs 中代碼如下:
/// <summary>
/// 應(yīng)用程序的主入口點(diǎn)。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Login login = new Login();
login.ShowDialog();
if (login.DialogResult == DialogResult.OK)
{
login.Dispose();
Application.Run(new UI());
}
else if (login.DialogResult == DialogResult.Cancel)
{
login.Dispose();
return;
}
}
Login.cs 中代碼如下:
/// <summary>
/// login
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnLogin_Click(object sender, EventArgs e)
{
if (txtPassword.Text == "12345678")
{
this.DialogResult = DialogResult.OK;
this.Dispose();
this.Close();
}
else
{
MessageBox.Show("Password is incorrect ", "Prompt message",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
/// <summary>
/// exit
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnExit_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
this.Dispose();
this.Close();
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Unity shader實(shí)現(xiàn)高斯模糊效果
這篇文章主要為大家詳細(xì)介紹了Unity shader實(shí)現(xiàn)高斯模糊效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02
C#使用自定義的泛型節(jié)點(diǎn)類實(shí)現(xiàn)二叉樹類
這篇文章主要為大家詳細(xì)介紹了C#如何使用自定義的泛型節(jié)點(diǎn)類 Node<T>實(shí)現(xiàn)二叉樹類BinaryTree<T>及其方法,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03
C#創(chuàng)建一個(gè)小型Web Server(Socket實(shí)現(xiàn))
這篇文章主要介紹了關(guān)于C#利用Socket實(shí)現(xiàn)創(chuàng)建一個(gè)小型Web Server的相關(guān)資料,文中通過示例代碼介紹的很詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-02-02
C#實(shí)現(xiàn)啟動(dòng)項(xiàng)管理的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)啟動(dòng)項(xiàng)管理,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以了解一下2022-12-12
C#中IEnumerator<T>和IEnumerable的區(qū)別
在C#中,IEnumerator<T>和IEnumerable是用于實(shí)現(xiàn)迭代的接口,本文主要介紹了C#中IEnumerator<T>和IEnumerable的區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01

