【问题标题】:How do I make a DataGridView that doesn't snap its rows to the top of the control?如何制作不将其行捕捉到控件顶部的 DataGridView?
【发布时间】:2009-05-06 15:35:19
【问题描述】:

我们在客户端中广泛使用了 DataGridView。我们的客户希望能够在一行中输入大量文本 - 太多文本无法显示在 DataGridView 的高度 - 并使用主滚动条滚动它们 - 即 DataGridView 的滚动条。

但是,DataGridView 只会滚动以使一行对齐到控件的顶部;如果一行比 DataGridView 大,那么您只能看到它的顶部。

如何制作不将其行对齐到控件顶部的 DataGridView?

【问题讨论】:

  • 我很想回答这个问题,因为我们刚刚遇到了同样的问题。

标签: c# .net winforms datagridview


【解决方案1】:

将 DataGridView 放在 Panel 控件中并使 Panel 可滚动。确保 DataGridView 的 Dock 设置为 none,Height 设置为网格中行的高度之和。

【讨论】:

  • 是的,这就是我最终解决问题的方法。但它不适用于虚拟模式。
【解决方案2】:

基本的答案是你不能。 DataGridView 通过确定当前的顶行然后将顶行绘制到左上角,然后继续向下(您可以通过使用 Reflector 查看 DataGridView 的 PaintRows 方法来看到这一点)来绘制自己。

与其尝试滚动整行,不如使用自动调整大小的文本框?它会随着用户键入而增加其高度,并且他们可以滚动文本框本身。

【讨论】:

    【解决方案3】:

    您是否检查过 Visual Basic Power Packs 3.0 下的“DataRepeater”控件;它在您的场景中非常方便。

    视频教程:
    http://windowsclient.net/learn/video.aspx?v=30534

    下载链接:
    http://msdn.microsoft.com/en-us/vbasic/bb735936.aspx

    【讨论】:

      猜你喜欢
      • 2019-05-25
      • 1970-01-01
      • 2016-09-13
      • 2017-10-29
      • 2011-07-04
      • 1970-01-01
      • 2011-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多