VB.NET绘制焦点矩形

时间:2014-03-26 12:06:43

标签: vb.net gdi+

我需要画一个普通的点状焦点矩形。

我想知道是否有相当于

的内容
Public Declare Function DrawFocusRect Lib "user32" (ByVal hdc As Long, lpRect As RECT) As Long

在管理的VB.NET的GDI + classes / System.Drawing中,将完成同样的工作。

谢谢!

我需要编辑我的帖子:由于某种原因,ControlPaint.DrawFocusRectangle不会在位图上保留。

我想问一下,是否有一种不同的方法也会持续存在于位图上。

1 个答案:

答案 0 :(得分:4)

ControlPaint类有许多用于绘制常见控件相关图形元素的有用工具。它包含一个DrawFocusRectangle方法,它应该可以满足您的需求。来自MSDN:

  

在指定的图形表面和指定范围内绘制焦点矩形。
... ...焦点矩形是一个虚线矩形,Windows用于指示当前键盘焦点的控件。 / p>

这是一个Shared方法,因此您可以在不创建ControlPaint类实例的情况下调用它,例如:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    ControlPaint.DrawFocusRectangle(Button1.CreateGraphics(), Button1.ClientRectangle)
End Sub

该方法还有overload,可让您指定前景色和背景色。

它位于由System.Windows.Forms库定义的System.Windows.Forms.dll命名空间中,因此它在技术上不是System.Drawing库的一部分,就像您要求的那样,但您应该能够引用和使用它如有必要,甚至在WinForm应用程序之外的那个库。