【发布时间】:2014-03-05 16:20:06
【问题描述】:
此代码从计时器滴答事件中调用,以便 dataviewgrid 以频繁的间隔刷新。
从我在 SO 上找到的其他答案中,我希望此代码将所选行重置为在此代码运行之前选择的行,从而刷新我的数据集。
只有变量 CurrentSelectedRow 是公共变量,其他都是本地变量。
sql = "select top 10 batch, TrussName, PieceName from FitaPieces order by SawTime desc "
myDataset = SelectFromDB(sql)
MyPreviouslyCutPieces.ClearAll()
Me.dgvPreviouslyCut.SelectionMode = DataGridViewSelectionMode.FullRowSelect
If Not IsNothing(Me.dgvPreviouslyCut.CurrentRow) Then
Debug.Print(Now.ToString & "...Current Row = " & Me.dgvPreviouslyCut.CurrentRow.ToString)
CurrentSelectedRow = Me.dgvPreviouslyCut.CurrentRow.Index
Else
Debug.Print(Now.ToString & "...Current Row = -1")
CurrentSelectedRow = -1
End If
If Not myDataset Is Nothing Then
If myDataset.Tables("CurData").Rows.Count > 0 Then
Me.dgvPreviouslyCut.DataSource = myDataset
Me.dgvPreviouslyCut.DataMember = "CurData"
End If
End If
If CurrentSelectedRow <> -1 Then
Me.dgvPreviouslyCut.Rows(0).Selected = False
Me.dgvPreviouslyCut.Rows(CurrentSelectedRow).Selected = True
End If
确实如此……对于计时器事件的第一个滴答声。在用户选择一行后的第二个刻度事件中,它会恢复到被选择的第一行。即使变量 CurrentSelectedRow 是一个公共变量,它在第一次滴答事件后被重置为零。然后选定的行切换回网格中的第一行。刷新网格的数据源时会自动选择第一行,但我在刷新后将其选中状态设置为 false。
dataviewgrid 的选中行如何重置为第一行?
【问题讨论】:
-
只需使用一个变量来跟踪突出显示的行,然后在刷新 DataGrid 时,确保该行再次突出显示。请参阅下面的答案。
-
当您说选择了同一行时,是指相同的数据/记录还是仅选择的行?
标签: sql vb.net datagridview timer dataset