.net - 键入时自动滚动 DataGridView

标签 .net vb.net winforms datagridview

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


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

这是图片:

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

最佳答案

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

输入的Cell用DataGridView.GetCellDisplayRectangle()测量而且,如果它是 Right位置超出DataGridView边界,Cell在电流设置为 FirstDisplayedCell 之前.
这应该确保单元格在输入时始终滚动到 View 中。
在编辑模式下,Cell 的边界会自动扩展。

此外,检查 cutOverflow GetCellDisplayRectangle() 的参数考虑 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

关于.net - 键入时自动滚动 DataGridView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51604395/

相关文章:

c# - 如何让一个方法接受不确定数量的不同类型的列表?

c# - 如何在 C# 中比较标志? (第2部分)

c# - 操作方法 : Validate a FileStream is a valid PDF document with . NET

c# - Entity Framework 6.0 - 删除时的奇怪行为

.net - 对于可插拔组件的本地化,这是一个很好的解决方案吗?

.net - 如何使用VB.NET为字符串赋值?

vb.net - c# 中的独特排列不会产生重复,但 vb.net 会产生重复

c# - 如何在屏幕中央显示工具提示?

c# - Windows 服务与 Windows 应用程序 - 最佳实践

c# - 将 DataGridView 图像单元格与文本单元格合并