thaick9x / baotri_quanly_tiemvang

Group 19 - Jun 2015
0 stars 0 forks source link

[Phát sinh] Bug: Form Đăng nhập #20

Open thaick9x opened 9 years ago

thaick9x commented 9 years ago

Sau khi điền username, password, click Đăng nhập thì được mà enter thì báo sai mật khẩu. Check lại xem có phải như vậy ko

aeros281 commented 9 years ago

Nó chèn event handler cho phím Enter hay là bấm Enter thì có nghĩa là bấm chuột?

aeros281 commented 9 years ago

https://github.com/thaick9x/baotri_quanly_tiemvang/blob/beta/source/QuanLyTiemVang/GUI/DangNhap.cs

        private void txt_TenDangNhap_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Down)
            {
                TaiKhoanDTO tk = new TaiKhoanDTO();
                tk.TenDangNhap = txt_TenDangNhap.Text;
                DataTable dt = TaiKhoanDAO.SelectTaiKhoanByTenDangNhap(tk);
                if (dt != null && dt.Rows.Count > 0)
                {
                    ktra_tendangnhap = true;
                    txt_MatKhau.Select();
                }
                else
                {
                    MessageBox.Show("Tên đăng nhập chưa có, vui lòng đăng ký tài khoản!");
                    ktra_tendangnhap = false;
                }
            }
        }

        private void txt_MatKhau_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Down)
            {
                if (txt_TenDangNhap.Text == null)
                    MessageBox.Show("Vui lòng nhập tên đăng nhập trước!");
                TaiKhoanDTO tk = new TaiKhoanDTO();
                tk.TenDangNhap = txt_TenDangNhap.Text;
                DataTable dt = TaiKhoanDAO.SelectTaiKhoanByTenDangNhap(tk);
                if (dt != null && dt.Rows.Count > 0)
                    tk.MatKhau = Convert.ToString(dt.Rows[0]["MatKhau"]);
                if (tk.MatKhau == txt_MatKhau.Text)
                {
                    KiemTraDangNhap.ktradangnhap = true;
                    this.Close();
                    FormMain f = new FormMain();
                    f.FormMain_Load(sender, e);
                }
                else
                {
                    MessageBox.Show("Tên đăng nhập hoặc Mật khẩu không hợp lệ, xin vui lòng nhập lại!");
                    ktra_matkhau = false;
                }
            }
        }

Rồi, nó có event handler cho phím Enter, mày chỉnh lại thành tab stop đi, chỉnh tab sao cho khi bấm phím Enter có nghĩa là mình select cái control ấy.

thaick9x commented 9 years ago

thôi khỏi đi chèn thêm dòng mã hóa vào chỗ enter rồi

aeros281 commented 9 years ago

Don't repeat yourself

thaick9x commented 9 years ago

what do you mean

aeros281 commented 9 years ago

Search google. Link nè

aeros281 commented 9 years ago

Nói chung là tao không accept cái pull request. Chỉnh lại đi.

https://stackoverflow.com/questions/299086/c-sharp-how-do-i-click-a-button-by-hitting-enter-whilst-textbox-has-focus

aeros281 commented 9 years ago

Ủa mà bộ set thuộc tính AcceptButton trên form ở Designer không được hay sao mà phải làm vậy khổ thế?

aeros281 commented 9 years ago

Chỉ mày luôn nha:

  1. Xóa hết 2 cái event handler kia(KeyUp). Để chỉ tốn dung lượng code.
  2. Vào designer của Form DangNhap mà chỉnh nè

capture

Gọi hàm handler cũng được, nhưng việc mày pass cái object và argument của event KeyUp vào event Button_Click là không được, vì sau này nếu tao chỉnh sửa trong hàm handler của Button_Click thì phải chấp nhận là 2 cái arguments trên dùng không được, vì nó không "nguyên thủy".

thaick9x commented 9 years ago

code cũ nó như vậy t chỉ sửa lại thôi

aeros281 commented 9 years ago

Làm theo kiểu của tao gọn hơn.

thaick9x commented 9 years ago

còn DownArrow

aeros281 commented 9 years ago

Lúc di chuyển giữa 2 input text chẳng ai lại dùng phím :arrow_down: hết, người ta toàn dùng tab thôi. Với lại nếu như tao đang ở input mật khẩu thì tao muốn bấm Enter là accept hơn là phím :arrow_down:.

Chỉnh lại tab stop chuẩn thì người dùng đăng nhập như thế này:

  1. Vào form Đăng Nhập, input username được focus ngay khi form hiện ra.
  2. Gõ username, bấm tab --> chuyển xuống input password.
  3. Gõ Password. Bấm Enter.