我的項目中有兩種形式(Login
和Main
)。我試圖找到的是,如果登錄成功,我必須顯示Main
表單並關閉Login
表單。當登錄成功時,我在Login
表單中使用此方法關閉Login
表單。但是當我關閉登錄表單時,所有表單都關閉。登錄表格關閉問題
Q
登錄表格關閉問題
0
A
回答
0
你可以做到這一點,你的Program.cs中,在後臺運行的主要形式,並顯示它,當你成功授權用戶:
的Program.cs:
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
MainForm frm = new MainForm();
Application.Run();
}
然後在你的主要形式,在成功授權,表現出來,在這種情況下,我把它放在構造函數:
public MainForm()
{
Login frmLogin = new Login();
frmLogin.Show();
if (frmLogin.ShowDialog(this) == DialogResult.OK)
{
this.Show();
InitializeComponent();
}
}
確保您的登錄表單上,在成功authorizati添加這行代碼上:
this.DialogResult = DialogResult.OK;
0
你可以把登錄表單,你檢查登錄成功的代碼如下。
Form2 formmain = new Form2();
this.Hide();
if (formmain.ShowDialog() == DialogResult.OK)
{
Application.Run(new Form2());
}
this.Close();
0
u能在Program.cs中時啓動的應用程序的main方法直接使用登錄表單..
該樣品conains 2種形式命名的MainForm和FrmLogin ..
Program.cs中
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
FrmLogin frmLogin = new FrmLogin();
UserInfo userInfo = frmLogin.Login();
if (userInfo != null)
{
// open main form with current user
Application.Run(new MainForm(userInfo));
}
}
UserInfo.cs
個這個類包含loged用戶信息
public class UserInfo
{
// this fields are samples.
// you can add what do you need..
public int Id { get; set; }
public string UserName { get; set; }
public DateTime LoginDate { get; set; }
public string Roles { get; set; }
}
FrmLogin
這種形式打開自己並檢查用戶並返回結果
你應該設置取消到的DialogResult財產取消按鈕
// you need add these controls to form
// txtUserName(TextBox)
// txtPassword(TextBox)
// btnOK (Button) // need click event
// btnCANCEL(Button)
public partial class FrmLogin : Form
{
public FrmLogin()
{
InitializeComponent();
}
UserInfo currentUser;
private void btnOK_Click(object sender, EventArgs e)
{
var userName = txtUserName.Text;
var password = txtPassword.Text;
currentUser = GetUser(userName, password);
if (currentUser == null)
{
MessageBox.Show("invalid username | password");
this.DialogResult = DialogResult.Cancel;
}
this.DialogResult = DialogResult.OK;
}
public UserInfo Login()
{
var dialogResult = this.ShowDialog();
if (dialogResult != DialogResult.OK)
return null;
return currentUser;
}
private UserInfo GetUser(string userName,string passwrod)
{
// you should check from where users located area(like db)
if (userName.Equals("admin") && passwrod.Equals("test"))
{
return new UserInfo {
Id = 1,
LoginDate = DateTime.Now,
Roles = "Admin",
UserName ="admin"
};
}
return null;
}
}
的MainForm
UserInfo _currentUser;
public partial class MainForm : Form
{
UserInfo _currentUser;
public MainForm(UserInfo user)
{
_currentUser = user;
InitializeComponent();
}
}
相關問題
- 1. 登錄表格問題
- 2. Opencart關閉登錄
- 3. 在登錄時關閉rvm問候
- 4. 成功驗證時關閉登錄表
- 5. 登錄註冊表問題
- 6. ajax登錄表單問題
- 7. PHP登錄表單問題
- 8. PHP登錄表單問題
- 9. 登錄表單問題
- 10. 請不要關閉表格,除非用戶登錄
- 11. 關閉PhpMyAdmin自動登錄
- 12. HTTP Google登錄 - Cookie關閉
- 13. 用戶驗證後關閉登錄表單時出現的問題,使用VB
- 14. 登錄問題
- 15. 關於facebook登錄套件的問題
- 16. 登錄關於SharedPreference的facebook問題
- 17. 登錄關於Astersik的問題
- 18. Javascript關閉問題
- 19. Nodejs關閉問題
- 20. Searchview關閉問題
- 21. Java.util.Scanner,問題關閉
- 22. JavaScript關閉問題
- 23. Javascript關閉問題
- 24. Javascript關閉問題
- 25. JFrame關閉問題
- 26. 的Android關閉登錄屏幕上時,退格鍵上登錄活動按
- 27. ajax登錄問題
- 28. JavaScript登錄問題
- 29. 問題登錄vb.Net?
- 30. 問題與登錄
顯示你的代碼,請。 –
看起來像你的登錄表單以第一種形式啓動(在'Program.cs'中,'Application.Run(new Form1());')。改變這一點,以便Application.Run啓動主表單,隱藏它,顯示登錄表單,如果登錄有效,關閉登錄表單並顯示主表單。 – Nino
可能從http://stackoverflow.com/questions/4759334/how-can-i-close-a-login-form-and-show-the-main-form-without-my-application-closi複製 – Xavave