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

时间:2009-05-06 15:35:19

标签: c# .net winforms datagridview

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

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

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

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

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

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