AmplitudeXYZ Ответов: 0

Как определить, установлен ли какой-либо флажок в datagridview или все они сняты


Здравствуйте мои друзья:

У меня есть DataGridView в форме Windows. Первый столбец содержит флажки.
Я могу определить, установлен ли какой-либо из флажков, однако мне нужно знать, все ли они сняты.

Например:
Если пользователь нажал на какой-либо из флажков, то сделайте что-нибудь, если пользователь снял все ранее отмеченные флажки, сделайте что-нибудь еще.

Опять же, я могу определить, установлен ли флажок или снят. Однако мне нужно определить, когда какой-либо флажок установлен и когда все флажки сняты.

Мне нужно, чтобы это происходило каждый раз, когда строка проверяется, чтобы я мог знать, когда условие выполнено. Это означает, что я не использую событие кнопки.

Что я уже пробовал:

Следующий код возвращает Bool каждый раз, когда пользователь проверяет или снимает флажок в сетке. Это не работает, потому что я хочу знать, когда какие-либо флажки установлены и все ли они сняты.

Например: допустим, пользователь проверяет 5 ящиков. Я хочу, чтобы меня уведомили только один раз. И снова уведомляется, когда все 5 не отмечены, а не только отдельные коробки.

Public Function IsContainChecked() As Boolean

    Dim ch1 As New DataGridViewCheckBoxCell()
    ch1 = DirectCast(DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(0),  _
        DataGridViewCheckBoxCell)
    Return CBool(ch1.EditingCellFormattedValue)

End Function

Graeme_Grant

Вот как это работает. Вам нужно написать код, чтобы обработать условие так, как вы этого хотите.

j snooze

вместо того чтобы делать логическое значение, почему бы не сохранить счетчик, который вы добавляете и вычитаете при каждой проверке/снятии флажка. Когда его ноль, вы знаете, что все они непроверены, когда его нет, вы знаете, что по крайней мере один флажок установлен. Я думаю, что не знаю ваших требований, так что это просто предложение, которое может не соответствовать вашим потребностям, но это способ отслеживать, если никакие флажки не установлены.

0 Ответов