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).