Hàm ktra của bạn thế nào ta???
Bạn ghi nó vào sự kiện j?
Lần đầu tiên gặp trường hợp như bạn đó!!
cũng có khi do máy ^^!
Mình có đoạn code kiểm tra dữ liệu trùng khi add thêm sản phẩm vào datagrid, tuy nhiên có 1 điều là khi bấm "chậm chậm" nút Add thì nếu dữ liệu trùng sẽ thông báo "Sản phẩm đã có rồi", nhưng nếu bấm "nhanh nhanh" nút Add thì nó cứ add vào đến cái thứ 5, 6 mới báo "Sản phẩm đã có rồi"
Ai biết nguyên nhân vì sao ko?? Hay vì máy chạy chậm quá, bộ xử lý ko kịp
Thanks
C# một phần tất yếu của cuộc sống
Cà phê xem phim 3D Đà Nẵng - http://3dsmartcoffee.com.vn
<@ Bản đồ dẫn đường - Click here @>
Hàm ktra của bạn thế nào ta???
Bạn ghi nó vào sự kiện j?
Lần đầu tiên gặp trường hợp như bạn đó!!
cũng có khi do máy ^^!
Bạn kiểm tra lại code đi, do code chưa đúng thôi.
Chia sẻ là học hỏi
hix. Nếu máy bạn chạy chậm thì khi click cái là bạn ngay lập tức cho Enable=false để ko kích tiếp được nữa. Khi cái công việc xử lý cho cái click kia hoàn tất thì bạn cho Enable=true để có thể click được tiếp.Thử xem.
Code của mình đây, đại khái là vậy
Code:private void btnAdd_Click(object sender, EventArgs e) { int currentSanPhamId = (int)cbbMaSP.SelectedValue; if (ExistedInSanPhamDuocChon(currentSanPhamId)) { MessageBox.Show("Sản phẩm đã có trong danh sách"); } else { if (cbbMaSP.Text == "" || cbbTenSP.Text == "") { MessageBox.Show("Không có Sản phẩm được chọn", "Thong bao"); cbbMaSP.Focus(); } else { if (txtSoLuong.Text == "") { MessageBox.Show("Nhập Số lượng sản phẩm cần mua", "Thong bao"); txtSoLuong.Focus(); } else { if (cbbTenKH.Text == "") { MessageBox.Show("Chọn tên Khách hàng.", "Thong bao"); cbbTenKH.Focus(); } else { int indexCurr2 = Program._indexCurr2; DataRow currentDataRow = GetRowFromSanPham(currentSanPhamId); if (currentDataRow != null) { DataRow dr = dtSanPhamChon.NewRow(); dr[0] = txtCurrentIndex.Text; // ("Stt") dr[1] = currentDataRow[1]; // ("Mã SP") ...............
C# một phần tất yếu của cuộc sống
Cà phê xem phim 3D Đà Nẵng - http://3dsmartcoffee.com.vn
<@ Bản đồ dẫn đường - Click here @>
Bạn làm if ...else lòng nhau chằn chịt wa!!!
Nhìn ngộp thật!!! hic
Sao bạn ko làm thế này nhỉ
Nhìn của bạn ko có sai nhưng hơi rối!!!Visual C# Code:
{ // Thực thi câu lệnh trong này!!! } { MessageBox.Show("Chọn tên Khách hàng.", "Thong bao"); cbbTenKH.Focus(); } { MessageBox.Show("Nhập Số lượng sản phẩm cần mua", "Thong bao"); txtSoLuong.Focus(); } .....
Thế này nhìn sẽ gọn hơn đó ^^! hic.
hix! bạn viết 5 tầng if ác quá. Vừa vất vả vừa khó xem.he. Thử bỏ 3 cấp ngoài cùng bằng cách sử dụng Return thế này xem. Bên dưới xử lý nhiều thì vô hiệu hóa tên btnAdd đi.Chẳng hạn:
private void btnAdd_Click(object sender, EventArgs e)
{
int currentSanPhamId = (int)cbbMaSP.SelectedValue;
if (ExistedInSanPhamDuocChon(currentSanPhamId))
{
MessageBox.Show("Sản phẩm đã có trong danh sách");
return;
}
if (cbbMaSP.Text == "" || cbbTenSP.Text == "")
{
MessageBox.Show("Không có Sản phẩm được chọn", "Thong bao");
cbbMaSP.Focus();
return;
}
if (txtSoLuong.Text == "")
{
MessageBox.Show("Nhập Số lượng sản phẩm cần mua", "Thong bao");
txtSoLuong.Focus();
return;
}
//vo hieu hoa btn add: de khong click dc nua khi chua xu ly xong
btnAdd.Enable=false;
if (cbbTenKH.Text == "")
{
MessageBox.Show("Chọn tên Khách hàng.", "Thong bao");
cbbTenKH.Focus();
}
else
{
int indexCurr2 = Program._indexCurr2;
DataRow currentDataRow = GetRowFromSanPham(currentSanPhamId);
if (currentDataRow != null)
{
DataRow dr = dtSanPhamChon.NewRow();
dr[0] = txtCurrentIndex.Text; // ("Stt")
dr[1] = currentDataRow[1]; // ("Mã SP")
................
//cho btnAdd tro lai hoat dong
btnAdd.Enable=true;
}//end of click event
Như thế thì bạn chỉ còn if ở dạng 2 tầng thui. cho thoáng mát. Chứ mùa hè mà viết như bạn thì chết nóng.hihi
À!Nhân tiện mình hỏi luôn.hơi ngoài lề chút.
Sao mình viết code có căn lề thụt thò phân cấp. Nhưng lúc "Gửi trả lời" nó lại căn trái hết nhỉ? Làm thế nào để viết giữ nguyên được vậy các bác.hihi. Mình mới tham gia nên chưa biết.thanks
C# một phần tất yếu của cuộc sống
Cà phê xem phim 3D Đà Nẵng - http://3dsmartcoffee.com.vn
<@ Bản đồ dẫn đường - Click here @>
Thú vị thật! có vụ nhanh nhanh, chậm chậm khi click vô button nữa hả????
Mình gợi ý nha!
Tạo hàm check trùng
Tạo một cái check mã chẳng hạn!!!
Rồi cho cái for duyệt qua từng rows rồi bỏ điều kiện là cái chuỗi trùng với rows[i].cells[1] chẳng hạn vô for đó-->break;
return true; chẳn hạn