【发布时间】:2017-08-03 10:06:54
【问题描述】:
我有一个带有文本和图像的可滚动 DataGridView。但如果它包含更多行,则适合屏幕滚动无法正常工作。如果滚动应该隐藏的文本部分,则会保留在新文本的顶部。所以我的 DataGridView 的顶部和底部包含写在彼此顶部的双文本。不过中间部分很好。
创建视图后,我调整了文本大小和单元格大小。这可能是问题所在。老实说,我真的不知道从哪里开始寻找解决方案。我唯一能想到的就是尝试在滚动事件上重新绘制。我试过这个similar issue,但它并没有为我解决这个问题。我还看到很多人在 datagridview 中绘画时都会遇到问题,但我没有(所以请不要将其标记为其中一个问题的副本)。这部分代码我没有写,只是图片通过设置在dgvAlarms_CellFormatting中的DataGridViewCellFormattingEventArgs.Value中传递。
当我尝试将 DataGridView 中除标题和图像(我在最后一张图片中剪下的)之外的所有内容都设置为 DoubleBuffered 时,它变成了黑色,如下所示:
感谢您的帮助。
【问题讨论】:
-
只是猜测,但制作 DGV 肯定会提高滚动性能。它甚至可以帮助避免绘制错误。
-
对不起,TaW,但你所说的“制造 DGV”是什么意思?
-
哎呀,错字了。我的意思是“制作 DGV 双缓冲”。通过子类化或反射.. See here for both methods!
-
原来我第一次尝试将其设为 DoubleBuffered 时我做错了,但这次如果我打开 DGV DoubleBuffered,除了标题之外的所有内容都会变为黑色。
-
这听起来很奇怪,坦率地说,我不知道你仍然做错了什么。
标签: c# winforms datagridview scroll