vòng lặp kiểm tra checkbox

1 thích 0 không thích
332 lượt xem
đã hỏi 19 Tháng 12, 2015 trong Lập trình VB.NET bởi trongtaytaasd (450 điểm)
mình muốn tạo 1 vòng for để check các checkbox xem checkbox nếu được check sẽ cho giá trị 1 còn không được check sẽ cho giá trị 0. ai giúp mình được chứ?
    

7 Câu trả lời

1 thích 0 không thích
đã trả lời 21 Tháng 12, 2015 bởi Mr. Cùi Bắp (5,140 điểm)
được bầu chọn là câu hỏi hay nhất 22 Tháng 12, 2015 bởi Cái Trí Minh
 
Câu trả lời hay nhất

Để giải quyết bạn có thể dùng For để quét hết các control là CheckBox rồi kiểm tra xem CheckBox nào được check và ngược lại

For index = 0 To Controls.Count - 1
            If TypeOf Controls(index) Is CheckBox Then
                If DirectCast(Controls(index), CheckBox).Checked Then
                    MessageBox.Show(DirectCast(Controls(index), CheckBox).Name + " - 1")
                Else
                    MessageBox.Show(DirectCast(Controls(index), CheckBox).Name + " - 0")
                End If
            End If
        Next

0 thích 0 không thích
đã trả lời 19 Tháng 12, 2015 bởi Mr. Cùi Bắp (5,140 điểm)
Nếu checkbox của bạn là cố định thì tại sao lại phải dùng For để kiểm tra? Bạn có thể nói rõ hơn hoặc chụp hình màn hình lại để mình dễ hình dung được ko
0 thích 0 không thích
đã trả lời 19 Tháng 12, 2015 bởi trongtaytaasd (450 điểm)
mình đang làm 1 cái tra cứu thời khóa biểu và 1 cái để nhập môn học. tính 7 ngày, chia làm 2 buổi sáng chiều thì có 42 cái checkbox tiết. mình muốn tạo 1 vòng for để check cho nhanh chứ cứ viết kiểu phổ thông nó dài qua
0 thích 0 không thích
đã trả lời 21 Tháng 12, 2015 bởi trongtaytaasd (450 điểm)

đây là hình ảnh của mình. thứ thì mình đặt cbt2 đến cbcn, ca thì mình đặt là cbs2 đến cbscn, cbc2 đến cbccn

tiết thì đặt cbt2t1 đến cbcnt1,...

bạn có thể làm cụ thể cho mình được không?

0 thích 0 không thích
đã trả lời 21 Tháng 12, 2015 bởi Khách
Bạn hãy làm theo chia sẽ vừa rồi của mình là được. Mình giải thích lại ý nghĩa của đoạn code nha

1. Dùng For để quét tất cả control trên form

2. Dùng If để kiểm tra những control nào là CheckBox mà thôi

3. Dùng "DirectCast(Controls(index), CheckBox).Checked" để kiểm tra những CheckBox nào được check thì làm việc A còn Else thì làm việc B gì đó

Nếu vẫn ko được nữa hãy up đoạn code của bạn lên mình sẽ kiểm tra cho
0 thích 0 không thích
đã trả lời 22 Tháng 12, 2015 bởi trongtaytaasd (450 điểm)
mình chỉ muốn check từ checkbox tiết thôi thì phải chỉnh như thế nào?
0 thích 0 không thích
đã trả lời 23 Tháng 12, 2015 bởi Mr. Cùi Bắp (5,140 điểm)
Nếu muốn check combobox tiết thôi thì mình nghỉ ra 2 cách đơn giản là:

1. Bạn đặt tên các combobox tiết như thế nào cho nó có điểm chung để mình dể kiểm tra. VD: cboT_T2T1,cboT_CNT1... cụm "cboT_" dùng để phân biệt nó với checkbox thứ. Rồi sau đó bạn đặt điều kiện kiểm tra nào vào vòng For để kiểm tra xem control nào là CheckBox và có Name chứa chữ "cboT_" thì mới check

2. Bạn đặt tất cả các checkbox tiết vào trong 1 panel và những checkbox khác vào panel khác rồi dùng For để quét panel chứ checkbox tiết. Vd: pnlTiet là panel chứa checkbox tiết thì bạn viết như sau: For index = 0 To pnlTiet.Controls.Count - 1 những phần còn lại thì ko có gì thay đổi
...