winforms 键入时自动滚动DataGridView

eivgtgni  于 2022-11-25  发布在  其他
关注(0)|答案(1)|浏览(148)

我遇到了这个问题,DataGidView中的最后一列太长,您需要使用滚动条来显示该列的其余部分。
但是当我键入文本时,它不会在键入时自动滚动。
我想要的是,我想要在键入时自动滚动滚动条,这样用户在键入时就不必使用滚动条了。
以下是图像:


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

zy1mlcev

zy1mlcev1#

查看以这种方式修改的单元格滚动行为在您的上下文中是否有用。
输入的单元格用DataGridView.GetCellDisplayRectangle()测量,如果它的Right位置福尔斯DataGridView界限,则将当前单元格之前的Cell设置为FirstDisplayedCell
这应确保在输入单元格时始终滚动到视图中。
在编辑模式下,单元格的边界将自动扩展。
此外,请检查GetCellDisplayRectangle()方法的cutOverflow参数,以了解在考虑Cell边界范围时的稍微不同的行为。

Private Sub DataGridView1_CellEnter(sender As Object, e As DataGridViewCellEventArgs)
    Dim cellArea = 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

相关问题