【问题标题】:auto move focus to next cell datagridview自动将焦点移动到下一个单元格 datagridview
【发布时间】:2011-07-16 19:49:52
【问题描述】:

我有一个 datagridview(DGV),我希望该行的第一个单元格是序列号,所以我放了这个代码。

  Private Sub dgvStudents_RowEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGVStudents.RowEnter
        Dim RowIndex As Integer = e.RowIndex
        Debug.Print(RowIndex.ToString)
        With DGVStudents
            .Rows(e.RowIndex).Cells(0).Value = e.RowIndex + 1
            If .Rows(e.RowIndex).Cells(0).Selected = True Then
                .Rows(e.RowIndex).Cells(0).Selected = False
                .Rows(e.RowIndex).Cells(1).Selected = True
            End If
        End With
        DGVStudents.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells)
    End Sub

主要目的是输入新行,为第一个单元格编号并将焦点移至下一个单元格。将其置于编辑模式,但我似乎可以让它工作。有什么帮助吗?

【问题讨论】:

    标签: .net winforms datagridview focus cell


    【解决方案1】:

    我相信您实际上处于第一个单元格的编辑模式,也许您可​​以将其推送到 CellEnter 事件中,以防它的第一个单元格使用 SendKeys.Send("{TAB}") 将您移动到下一个单元格。此外,如果用户不更改该值,请将第一列也设置为ReadOnly

    您也可以尝试通过设置DataGridViewCurrentCell 属性来进行此类操作

    datagridview1.CurrentCell = Rows(e.RowIndex).Cells(1);
    

    【讨论】:

    • 感谢您的回复,但不鼓励使用 sendkeys,因为它可能对不同的操作系统产生不同的影响
    • 好的,那么我建议您尝试设置datagridviewCurrentCell 属性
    • 我现在收到错误operation not valid because it results in a reenterent call to the setCurrentCellAddressCore function
    猜你喜欢
    • 1970-01-01
    • 2012-05-11
    • 2016-08-03
    • 1970-01-01
    • 2022-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多