我正在使用VB6并且在其中我正在使用MSFlexGrid现在我想删除由用户选择的完整行并且一旦自动完成将焦点设置为文本框,同时在互联网上搜索有用但问题是当我点击按钮它删除所有行甚至第一行,这是FlexGrid的标题,我不想删除第一行。
这是代码
Private Sub cmdDell_Click()
Dim i As Integer
With grdArticles 'the msflexgrid
If .RowSel <> 0 Then 'check if there is a selected row
For i = .RowSel To .Rows - 2 'loop from selected row to the las row
.TextMatrix(i, 0) = .TextMatrix(i + 1, 0) 'set rows with 1 back
.TextMatrix(i, 1) = .TextMatrix(i + 1, 1)
.TextMatrix(i, 2) = .TextMatrix(i + 1, 2)
.TextMatrix(i, 3) = .TextMatrix(i + 1, 3)
Next i
.Rows = .Rows - 1 'make the rows 1 less
Else
MsgBox "Selecet row to delete!!!", vbExclamation
End If
End With
End Sub
答案 0 :(得分:0)
如果您只需要一次选择一行,则只需要使用
Me.MSFlexGrid1.RemoveItem Me.MSFlexGrid1.RowSel
如果您可以选择多个行(用户单击和拖动以选择多个行),则需要确定所选行的范围并单独删除每一行。此页面上的代码显示了如何获取开始和结束选定的行。删除行时,您需要反向循环。
http://www.vb-helper.com/howto_tell_flexgrid_rows_selected.html