2
A
回答
9
這可能是一個解決方案;
在LoginForm;
public bool IsLoggedIn { get; private set;}
public void LoginButton_Click(object sender, EventArgs e)
{
IsLoggedIn = DoLogin();
if(IsLoggedIn)
{
this.Close()
}
else
{
DoSomethingElse();
}
}
在Program.cs的
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
LoginForm loginForm = new LoginForm();
Application.Run(loginForm);
if (loginForm.IsLoggedIn)
{
Application.Run(new OtherForm());
}
}
0
這裏的挑戰是什麼樣的形式傳遞給Application.Run()方法。如果您使用登錄表單實例啓動應用程序,然後關閉該表單,我相信應用程序將退出。毫無疑問,有幾種方法可以處理...
一種方法是將主窗體的實例傳遞給Application.Run方法(這將消息循環綁定到該窗體實例而不是登錄窗體)。在主窗體的OnLoad方法中,您可以使用模態對話框來執行登錄。即
//--Main form's OnLoad method
protected override void OnLoad(EventArgs ea)
{
// Remember to call base implementation
base.OnLoad(ea);
using(frmLogin frm = new frmLogin())
{
if(frm.ShowDialog() != DialogResult.OK)
{
//--login failed - exit the application
Application.Exit();
}
}
}
2
根據您的應用程序的整體架構,我經常喜歡讓主窗體控件啓動登錄屏幕。
//Program.cs:
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
//MainForm.cs
private void MainForm_Load(object sender, EventArgs e)
{
this.Hide();
Login login = new Login();
if (login.ShowDialog() == DialogResult.OK)
{
//make assignments from login
currentUser = login.User;
}
else
{
//take needed action
Application.Exit();
return;
}
}
0
如果你使用.ShowDialog(),不要忘了把它包裝的使用塊周圍,或登錄表單上使用.Dispose在完成後。模型對話框必須手動處理。
相關問題
- 1. C#窗體中的一種新形式
- 2. jQuery Ajax窗體兩種提交按鈕的一種形式
- 3. 使用上兩種不同的形式
- 4. Symfony - 兩個實體在同一頁面上的兩種形式
- 5. 如何從窗體導航到不同形式的子窗體?
- 6. c# - 組合兩種形式
- 7. ASP.NET中的兩種形式
- 8. 具有相同FormGroup的兩種形式?
- 9. opeing形式,C#windows窗體
- 10. 我想爲兩頁有兩種不同的形式
- 11. 如何在兩種不同形式的C#Windows使用一個變量形成
- 12. 兩種提交按鈕的一種形式執行兩個不同的servlets
- 13. C#兩種形式訪問相同的類數據
- 14. 德爾福:以兩種不同的形式顯示相同的圖形
- 15. 模型有兩種不同的形式是安全的嗎?
- 16. 以一種形式提交兩個不同的目的地
- 17. C#LINQ實體查詢的兩種不同的性質
- 18. 具有兩種不同功能的按鈕在一種形式中
- 19. 窗體窗體晃動,同時呈現子窗體裏面的形式
- 20. ASP.NET兩種形式
- 21. Datagridview標題字體在c中的窗體形式#
- 22. 從一種形式將數據傳遞到在Windows窗體另一種形式的C#
- 23. 使用下拉值顯示兩種不同的形式
- 24. 這兩種形式的for-loop有什麼不同嗎?
- 25. 使用jquery引用兩種不同的形式
- 26. 這兩種PowerPoint形狀的方式不同(通過API訪問)
- 27. 窗體上的形式
- 28. YII2:在不同的活動窗體形式及其ID中的相同元素
- 29. Wordpress搜索三種不同的形式
- 30. 2種不同的動作形式
爲什麼你必須退出應用程序,如果登錄失敗?無法登錄時,您的瀏覽器或選項卡是否關閉? – 2008-12-25 15:11:57