MSFlexGrid: Как удалить несколько строк? - VB
Формулировка задачи:
Прошу прощения за возможно глупый вопрос. В гриде есть две строки, с одинаковым значением одного столбца. Строки идут подряд. Как сделать так, чтобы при удалении одной строки автоматом удалялась другая? Вне зависимости от того, находится она выше первой или ниже.
Решение задачи: «MSFlexGrid: Как удалить несколько строк?»
textual
Листинг программы
- Private Sub MSFlexGrid1_KeyDown(KeyCode As Integer, Shift As Integer)
- Dim intThisRow As Integer
- Dim intThatRow As Integer
- On Error GoTo MethodExit
- intThisRow = MSFlexGrid1.Row
- 'Assume one fixed row!!!
- If MSFlexGrid1.Rows = 1 Then Exit Sub
- If intThisRow = MSFlexGrid1.Rows - 1 Then
- If MSFlexGrid1.TextMatrix(intThisRow, 1) = MSFlexGrid1.TextMatrix(intThisRow - 1, 1) Then
- intThatRow = intThisRow - 1
- End If
- Else
- If MSFlexGrid1.TextMatrix(intThisRow, 1) = MSFlexGrid1.TextMatrix(intThisRow + 1, 1) Then
- intThatRow = intThisRow + 1
- ElseIf MSFlexGrid1.TextMatrix(intThisRow, 1) = MSFlexGrid1.TextMatrix(intThisRow - 1, 1) Then
- intThatRow = intThisRow - 1
- End If
- End If
- If KeyCode = vbKeyDelete Then
- If intThatRow > 0 Then
- If intThatRow > intThisRow Then
- MSFlexGrid1.RemoveItem intThatRow
- MSFlexGrid1.RemoveItem intThisRow
- Else
- MSFlexGrid1.RemoveItem intThisRow
- MSFlexGrid1.RemoveItem intThatRow
- End If
- Else
- MSFlexGrid1.RemoveItem intThisRow
- End If
- End If
- MethodExit:
- If Err.Number <> 0 Then
- If Err.Number = 30015 Then
- Err.Clear
- MSFlexGrid1.Rows = MSFlexGrid1.FixedRows
- Else
- MsgBox Err.Description
- End If
- End If
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д