当我选择最后一行时,为什么在MSFlexGrid中选择所有行?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当我选择最后一行时,为什么在MSFlexGrid中选择所有行?相关的知识,希望对你有一定的参考价值。

我有一个MSFlexGrid控件有2列,我的所有数据都显示在这个网格上。当我单击“添加”按钮时,我添加了一个新行,然后选择了我的新行。

问题是所有行都被选中,我只需要选择我的新行。

这是我的代码:

Private Sub Add_Click()
    FGrid.Rows = FGrid.Rows + 1
    FGrid.RowSel = FGrid.Rows - 1
    FGrid.ColSel = 0

    If FGrid.Rows > 1 Then ' > 10
        FGrid.TopRow = FGrid.Rows - 1
    Else
        FGrid.TopRow = 1 
    End If

    FGrid.TextMatrix(FGrid.RowSel, 0) = Format(Date, "DD/MM/YYYY")
    FGrid.SetFocus
End Sub  
答案

看起来你正在寻找Row财产,而不是RowSel。您可以根据您的要求使用两者的组合。

Row物业:

返回/设置FlexGrid中的活动单元格。

RowSel财产:

确定一系列单元格的起始行或结束行或列。

当您设置RowSel值时,它被视为选择的结尾,因为Row值仍为0(未更改)。因此,您需要使用以下内容:

FGrid.Row = FGrid.Rows - 1
'FGrid.RowSel = FGrid.Rows - 1   ' Optional.

还有一件事,你可以使用.Rows在第一个单元格中添加一个值,而不是增加TextMatrix()然后使用AddItem为单元格赋值。在这种情况下,您的代码看起来像这样:

FGrid.AddItem Format(Date, "dd/MM/yyyy")

FGrid.Row = FGrid.Rows - 1
'FGrid.RowSel = FGrid.Rows - 1   ' Optional.
FGrid.ColSel = 0

If FGrid.Rows > 10 Then
    FGrid.TopRow = FGrid.Rows - 1
End If

FGrid.SetFocus

以上是关于当我选择最后一行时,为什么在MSFlexGrid中选择所有行?的主要内容,如果未能解决你的问题,请参考以下文章

求高手解答,vb中如何合并grid指定位置的表格?(例如:第一行的,第二行的3.4列)

从 BindingList 中删除最后一条记录选择最后一行导致 DataGridView 滚动

在快速滚动collectionview时,第一行数据在最后一行重复

在 tableview 中插入新行会重复最后一行

数据表未显示最后一行

当我在 tableView 的最后一行单击“更多数据...”时,TableView 不会重新加载数据