键入时自动滚动DataGridView

时间:2018-07-31 01:47:12

标签: vb.net winforms datagridview

我有一个问题,其中DataGidView的最后一列太长,您需要使用滚动条来显示该列的其余部分。
但是当我输入文字时,输入时它不会自动滚动。


我想要的是我想在键入时自动滚动滚动条,这样用户在键入时就不必使用滚动条。

这是图片:

The datagridview 如您所见,最后一列是备忘录。
当我在备忘录中键入文本时,它将不会自动滚动。如何实现呢?

1 个答案:

答案 0 :(得分:2)

看看以这种方式修改的单元格滚动行为是否可以在您的上下文中使用。

输入的CellDataGridView.GetCellDisplayRectangle()进行度量,如果Right的位置超出了DataGridView的范围,则将当前值之前的Cell设置为FirstDisplayedCell
这应确保在输入Cell时始终将其滚动到视图中。
在编辑模式下,Cell范围将自动扩展。

另外,在考虑cutOverflow边界范围时,请检查GetCellDisplayRectangle()方法的Cell参数是否有明显不同的行为。

Private Sub DataGridView1_CellEnter(sender As Object, e As DataGridViewCellEventArgs)
    Dim CellArea As Rectangle = DataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, False)
    If CellArea.Right > DataGridView1.Width AndAlso e.ColumnIndex > 0 Then
        DataGridView1.FirstDisplayedCell = DataGridView1(e.ColumnIndex - 1, e.RowIndex)
    End If
End Sub