在OnPaint
事件中的循环中,我使用DrawString
绘制一个字符串。在绘制字符串之前,客户端矩形oRect
需要偏移一些像素。在一个循环中,很明显这个抵消必须撤消,否则它们会相加。
这可以按预期工作:
Protected Overrides Sub OnPaint(e As PaintEventArgs)
...
oRect.Offset(oOffset)
e.Graphics.DrawString(sText, oFont, oBrush, oRect, oStringFormat)
oRect.Offset(New Point(- oOffset.X, - oOffset.Y))
...
End Sub
但是,通过简单地指定否定运算符来撤消偏移量会更好。当然,我可以继续使用名为Negate
的扩展名并将其应用如下:
oRect.Offset(Negate(oOffset))
但是,我想这样做:
oRect.Offset(- oOffset)
尝试在模块中为重载运算符指定扩展名告诉我,我无法对运算符应用扩展。
是否有其他方法可以使用重载运算符扩展Point(或任何其他)类型?