如何从msflexgrid中删除所选项目

时间:2016-02-27 23:09:39

标签: vb6

我正在使用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

1 个答案:

答案 0 :(得分:0)

如果您只需要一次选择一行,则只需要使用

Me.MSFlexGrid1.RemoveItem Me.MSFlexGrid1.RowSel

如果您可以选择多个行(用户单击和拖动以选择多个行),则需要确定所选行的范围并单独删除每一行。此页面上的代码显示了如何获取开始和结束选定的行。删除行时,您需要反向循环。

http://www.vb-helper.com/howto_tell_flexgrid_rows_selected.html