#vb.net
#vb.net
Вопрос:
У меня есть код здесь, но он не работает. То, что я пытаюсь сделать, это когда появилось окно сообщения и спросить, хочу ли я продолжить, и выбрать «нет», тогда выбранный флажок изменит значение на false.
If e.ColumnIndex = 0 Then
If e.RowIndex >= 0 And e.RowIndex <= Me.dgDispatchPosting.RowCount - 1 Then
If Me.dgDispatchPosting.Item("Approve_Status", e.RowIndex).Value <> "No Action" Then
If Me.dgDispatchPosting.Item("chkSelect", e.RowIndex).Value = False Then
If MsgBox("This Dispatch Code has been " amp; vbCrLf amp; "Do you want to proceed? " amp; Me.dgDispatchPosting.Item("Approve_status", e.RowIndex).Value amp; "!", vbQuestion vbYesNo, "Courier Dispatch Summary ") = MsgBoxResult.No Then
Me.dgDispatchPosting.Item("chkSelect", e.RowIndex).Value = False 'Must change the value here (Uncheck)
End If
End If
End If
End If
End If
Комментарии:
1. В строке перед окном сообщения вы проверяете, является ли
chkSelect
значение false. Затем вы отображаете окно сообщения, и если они нажимают «нетfalse
«, вы снова устанавливаете его. Я подозреваю, что вы хотите изменить строку перед MsgBox, чтобы проверить, верно ли это? В противном случае коду нечего делать.2. Код находится под _CellContentClick, строка перед окном сообщения проверяет, снят ли флажок щелкнул / выбран .. если выбранный флажок еще не установлен, появится окно сообщения, но если флажок уже установлен, появится окно сообщения .. Затем, когда я нажму НЕТ, флажок нажат / установленпревратится в false.
3. Ваш последний комментарий не имеет смысла. Вы говорите: «если выбранный флажок еще не установлен, появится окно сообщения», затем вы говорите: «если флажок уже установлен, появится окно сообщения» В соответствии с вашим кодом, единственный способ, которым окно сообщения будет всплывать, это значение
chkSelect
равно false . Затем вы устанавливаете его обратно в false, что является его текущим значением.4. Вы также можете столкнуться с проблемами со временем события. Я не уверен, когда значение столбца флажка обновляется по сравнению с тем, когда срабатывает событие щелчка по ячейке. Попробуйте переместить его в
CellValueChanged
.5. Прошу прощения, окно сообщения появится, если установленный флажок имеет значение false .. все, что я хочу, это когда появится окно сообщения, и я нажму нет .. установленный флажок превратится в false.
Ответ №1:
У меня есть ответ о том, как снять флажок datagridview
. Я просто выбираю / фокусируюсь в другом столбце / строке после изменения значения флажка.
If Me.dgDispatchPosting.Item("chkSelect", e.RowIndex).Value = True Then
If MsgBox("This Dispatch Code has been " amp; Me.dgDispatchPosting.Item("Approve_status", e.RowIndex).Value amp; "!" amp; vbCrLf amp; "Do you want to proceed? ", vbQuestion vbYesNo, "Courier Dispatch Summary ") = MsgBoxResult.No Then
'Must change the value here (Uncheck)'Must change the value here(Uncheck)
Me.dgDispatchPosting.Item("chkSelect", e.RowIndex).Value = False
'After Changing the value you must select/ focus in the other column or row to take effect the changes you made in code.
Me.dgDispatchPosting.Item("Approve_status", e.RowIndex).Selected = True
End If
End If