#checkbox
#флажок
Вопрос:
У меня есть столбец флажка в datagridview.Когда я пытаюсь выполнить итерацию по столбцу, результаты меняются на каждой итерации, несмотря на отсутствие изменений в флажках.Ниже приведен код:
Затемнить итоговые значения как целое число = 0
For RW As Integer = 0 To DGVMulyo.Rows.Count - 1 MsgBox(DGVMulyo.Rows(RW).Cells(1).Value) If DGVMulyo.Rows(RW).Cells(1).Value = True Then TotalRows = TotalRows 1 End If Next
На каждой итерации цикла messagebox будет показывать разные результаты состояния флажков.Несколько раз, даже если флажок установлен, вывод отображается как 0.
Я также попробовал следующее, но та же проблема сохранялась:
For RW As Integer = 0 To DGVMulyo.Rows.Count - 1 MsgBox(DGVMulyo.Rows(RW).Cells(1).State) If DGVMulyo.Rows(RW).Cells(1).State = True Then TotalRows = TotalRows 1 End If Next
В конце концов, следующий код, похоже, работает надежно:
Затемнить итоговые значения как целое число = 0
For RW As Integer = 0 To DGVMulyo.Rows.Count - 1 'MsgBox(DGVMulyo.Rows(RW).Cells(1).Value) If DGVMulyo.Rows(RW).Cells(1).Value = True Or DGVMulyo.Rows(RW).Cells(1).Value = 1 Then TotalRows = TotalRows 1 End If ' MsgBox(TotalRows) Next
Я использую версию для сообщества VS-2017 с 32-разрядной ОС Windows-7.
Халид.
Комментарии:
1. Кажется, вы уже решили свою проблему. В чем ваш вопрос?
2. Проблема решена, но зачем мне вообще нужно использовать два условия True или 1 для получения надежного отчета. Обычно только этих двух достаточно для получения правильного результата. Это ошибка в Visual Studio?
3. Нам нужно было бы узнать больше о ваших данных в ваших ячейках, чтобы ответить на этот вопрос.
4. Как данные в других ячейках / строках повлияют на результат сканирования столбца флажка. В столбце флажка нет никаких других данных. Однако я подозреваю, что другое мое действие могло привести к этой странной проблеме. Я написал код, в котором, просто щелкнув в строке соседнего столбца, флажок в этой строке будет установлен. То есть я установил для него значение True. Это может быть причиной того, что те флажки, которые были установлены с помощью значения True, возвращают значение True, а те, которые были установлены напрямую, возвращают значение 1.