PaintEventArgs.ClipRectangle 在 UserControl 上始终为 (0,0,0,0)
PaintEventArgs.ClipRectangle is always (0,0,0,0) on UserControl
我正在尝试为我编写的 UserControl 编写一个 EventHandler,
但出于某种原因,控件似乎没有 ClipRectangle:
Private Sub paints(sender As Object, p As PaintEventArgs) Handles Me.Paint
ControlPaint.DrawBorder(p.Graphics, p.ClipRectangle, SystemColors.AppWorkspace, ButtonBorderStyle.Solid)
End Sub
当我尝试添加 MyBase.OnPaint(p) 时,我得到了一个 Whosebug,因为出于某种原因,这似乎触发了一些无休止的递归。
那为什么没有矩形呢?
UserControl 的轮廓是这样的:
用户控件
- 表格布局
- - 表格布局
- - - 标签
- - - 标签
- - 文本框
它应该是 250x50 像素。
PaintEventArgs.ClipRectangle
是一个需要绘制的矩形。如果您的用户控件上没有控件,那么它就是客户区。 但是如果还有其他控件,那么它剪辑它们的区域来自客户端矩形!可能您的子控件占据了整个客户区,因此不需要绘图,因此返回 (0, 0, 0, 0)
.
我正在尝试为我编写的 UserControl 编写一个 EventHandler, 但出于某种原因,控件似乎没有 ClipRectangle:
Private Sub paints(sender As Object, p As PaintEventArgs) Handles Me.Paint
ControlPaint.DrawBorder(p.Graphics, p.ClipRectangle, SystemColors.AppWorkspace, ButtonBorderStyle.Solid)
End Sub
当我尝试添加 MyBase.OnPaint(p) 时,我得到了一个 Whosebug,因为出于某种原因,这似乎触发了一些无休止的递归。
那为什么没有矩形呢?
UserControl 的轮廓是这样的:
用户控件
- 表格布局
- - 表格布局
- - - 标签
- - - 标签
- - 文本框
它应该是 250x50 像素。
PaintEventArgs.ClipRectangle
是一个需要绘制的矩形。如果您的用户控件上没有控件,那么它就是客户区。 但是如果还有其他控件,那么它剪辑它们的区域来自客户端矩形!可能您的子控件占据了整个客户区,因此不需要绘图,因此返回 (0, 0, 0, 0)
.