Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
Vấn đề nghe có vẻ hết sức dễ, nhưng hiện code chạy lung tung, chưa đúng yêu cầu (khi thoát thì nó hiện thông báo hỏi thoát 2 lần <= dư). Mong ace giúp với!
Vấn đề như sau: khi chạy chương trình => mở form fLogin (2 buttun: btnLogin + btnExit)
- btnLogin: đăng nhập thành công => mở form fMain
- btnExit (hoặc đóng form bằng biểu tượng "X" trên thanh title): hiện MessageBox hỏi nguười dùng có thật sự muốn thoát hay không? (Yes => thoát chương trình)
// code form fLogin
private void fLogin_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("Bạn có chắc là muốn thoát không?", "Quản Lý Quán Cafe", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
e.Cancel = true;
}
}
private void btnExit_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void btnLogin_Click(object sender, EventArgs e)
{
if (Login())
{
fMain f = new fMain();
this.Hide();
f.ShowDialog();
this.Show();
}
}
void Login()
{
//code login
}
Ở form fMain có 2 button (btnLogout + btnExit)
- btnLogout: đóng form fMain, đồng thời mở lại form fLogin
- btnExit (hoặc đóng form bằng biểu tượng "X" trên thanh title): hiện MessageBox hỏi nguười dùng có thật sự muốn thoát hay không? (Yes => thoát chương trình) () giống như form fLogin
// code form fMain
private void fMain_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("Bạn có chắc là muốn thoát không?", "Quản Lý Quán Cafe", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
e.Cancel = true;
}
}
private void btnExit_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void btnLogout_Click(object sender, EventArgs e)
{
this.Close();
}
fMain f = new fMain();
this.Hide();
f.ShowDialog();
this.Show();
phải sửa thành
fMain f = new fMain();
fLogin l=new fLogin();
this.Hide();
f.ShowDialog();
l.Show();
mới sử dụng được
Có thể tóm gọn yêu cầu như thế này!
Chạy chương trình => mở formA, lick vào button trên A để truyền tham số cho formB và mở formB và ẩn formA đi
Khi ngời dùng ở formB muốn:
Ở formA trương tự: tức người dùng muốn:
p/s: Cái vấn đề truyền tham số giữa các form mình làm theo hướng dẫn của Kteam được rồi!
Mong các "võ lâm đồng đạo" giúp đỡ, tks!
Bỏ event form closing của form2 đi là được nhé bạn
Hoàng Công Hòa
Chưa được thì inbox vào fb trên!
Mình không biết có giúp gì cho bạn không nhưng mình thấy code có vẽ bất đồng thế nào ấy,
Bạn bắt sự kiện formclosing nhưng khi tạo form mới lại cho hide form cũ chứ không đóng:
=>như vậy nếu mình click liên tục nút login và logout thì nó tạo form rồi hide đi liên tục đúng không => rất nhiều form(*) => ít nhất 2 cái nếu mình bấm chỉ login 1 lần
Chưa tính bạn bắt sự kiện nút exit lại cho app close như vậy liệu nó có bắt formclosing không (có : 90%), và nếu bắt thì lúc đó khi mình tạo rất nhiều form (như mình giải thích ở trên) app.close sẽ đóng tất cả các form mà bạn đã tạo(*), mỗi form như vậy bắt 1 cái closing, 2 đến 3 cái là còn may