如何创建一个不将其行捕捉到控件顶部的DataGridView?

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

但是,DataGridView只会滚动,以便将行捕捉到控件的顶部; 如果一行大于DataGridView,那么你只能看到它的顶部。

如何创建一个不将其行捕捉到控件顶部的DataGridView?

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

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

为什么不使用自动resize的文本框而不是尝试滚动整行? 它将在用户输入时增加其高度,并且可以滚动文本框本身。

你检查过Visual Basic Power Packs 3.0下的“DataRepeater”控件吗? 在你的场景中它可以非常方便。

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

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