无法在vb6中单击mshflexgrid控件时选择行

时间:2019-04-23 14:38:43

标签: vb6

具有mshflexgrid控件的窗体不允许选择鼠标单击所在的行。有时,它允许选择上一行而不是被单击的行

我尝试将mshflexgrid的.RowSel属性添加为允许行选择,但不适用于第二行选择。

Private Sub MSHFlexGrid1_Click()
    last_row_selected = MSHFlexGrid1.RowSel
    If last_row_selected <> 1 Then last_row_selected = last_row_selected + 1
    With MSHFlexGrid1
        If (boolShift And vbShiftMask) = vbShiftMask Then
            SelectionOneAfterTheOther
        ElseIf (boolShift And vbCtrlMask) = vbCtrlMask Then
            SelectUnSelectGridRow
        Else
            UnSelectAllGridRows
            .Row = last_row_selected
            .ColSel = .Cols - 1
            .CellBackColor = vbHighlight
            .CellForeColor = vbHighlightText
        End If
    End With
    MSHFlexGrid1.Refresh
End Sub

.RowSel属性似乎没有为选择行选择正确的值 结果需要正确选择要单击的行。

2 个答案:

答案 0 :(得分:0)

在您的网格Click事件中,尝试执行以下操作:

With MSHFlexGrid1
    If .Row = .RowSel Then
        .Col = .Cols - 1
        .ColSel = 0
    End If
End With

您可能还需要在网格控件上设置SelectionMode。如果将上面的代码设置为flexSelectionFree

答案 1 :(得分:0)

您是否设置了SelectionMode属性?如果没有,您可以通过在属性窗口中单击“自定义”来实现。这将打开一个对话框,其中SelectionMode是可用属性之一。enter image description here