我使用带有DataGridView
的{{1}}作为某些值的堆栈。有些东西被记录到DataTable
行,然后我以DataTable
的方式将它们发送到某个地方 - 在底部绘制行 - >向上(向上堆叠)方向将是非常好的向上&向下的方向。
如何实现这一点,因为绘制事件仅对绘制单元格/单行有用?
答案 0 :(得分:0)
对不起,我有点不清楚(我不确定它是底部对齐还是底部对接或其他什么,所以我遗漏了那部分。)
但是,尽管如此,我还是明白了。似乎CellPainting
事件不限于单元格边界,因此您可以简单地移动单元格边界矩形,如下所示:
Rectangle^ newRect = gcnew Rectangle(
e->CellBounds.X,
DataGridView->Bounds.Bottom-e->CellBounds.Y, // this is the moving part
e->CellBounds.Width,
e->CellBounds.Height
);
需要考虑一些小修改(如果底部滚动条可见,DataGridView
边界),但代码会捕获该点。
从远处看问题确实可以解决问题;)
编辑确实如此,这会将细胞底部提升,但它也会对垂直/水平滚动和窗口焦点变化产生一些时髦的效果。是的,没有标题单元格。回到绘图板。
答案 1 :(得分:0)
编写一个自定义堆栈,该堆栈使用虚拟对象作为堆栈中的空插槽。虚拟对象可以是具有空属性的静态对象。当您填充堆栈时,删除虚拟对象并在那里添加新项目。然后使用此堆栈作为绑定源。堆栈末尾的虚拟对象确保DataGridView单元格中的第一行/顶行为空。这样您就不必费心修改DataGridView行为了。