【发布时间】:2014-05-01 18:27:53
【问题描述】:
我正在尝试绘制我的 tablelayoutpanel 对象的行。我为 cellpaint 事件添加了一个处理程序,但我什至无法让调试器捕获此事件。我还需要在 tablelayoutpanel 上配置什么,以便自定义绘制我的单元格吗?
我已尝试强制调用使用户控件加载无效,但这没有帮助。
这是我的代码:
Private Sub TableLayoutPanel3_CellPaint(sender As Object, e As TableLayoutCellPaintEventArgs) Handles TableLayoutPanel3.CellPaint
Select Case e.Row
Case 1
e.Graphics.FillRectangle(Brushes.Orange, e.CellBounds)
Case 2
e.Graphics.FillRectangle(Brushes.Green, e.CellBounds)
Case 3
e.Graphics.FillRectangle(Brushes.Yellow, e.CellBounds)
End Select
End Sub
我使用this other thread 作为参考。
编辑:我的表格布局面板单元格中的对象未设置为自动调整大小。当我启用自动调整大小时,我发现 cellpaint 事件会引发,并且我的对象会按预期显示。我想这种行为是设计使然。
【问题讨论】:
-
CellPaint 事件仅在重绘单元格时发生。你确定要重绘它吗?
-
即使我在设计时构建了面板,它也应该在加载时绘制单元格,对吧?
-
在您展示的参考资料中,问题的答案似乎创建了一个
New TableLayoutCellPaintEventHandler(tableLayoutPanel1_CellPaint)... 创建要触发的事件。试试看:) -
顺便说一下,我已经测试了你的代码,它对我有用。尝试重建/清理解决方案并再次测试。它应该可以工作。
-
在从参考链接转换示例代码时,我仍然无法触发事件。不知道我做错了什么。