2014-03-26 129 views
1

我需要画一个共同的虚线焦点矩形。VB.NET绘制焦点矩形

我想知道如果有一个相当于

Public Declare Function DrawFocusRect Lib "user32" (ByVal hdc As Long, lpRect As RECT) As Long 
在GDI +类

/VB.NET的System.Drawing中被管理,这将完成相同的。

谢谢!

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

因此,我想问一下是否还有一个不同的方法在位图上存在。

回答

4

ControlPaint类有许多用于绘制常见控制相关图形元素的有用工具。它包括一个DrawFocusRectangle方法,它应该做你正在寻找的东西。从MSDN:

在指定的图形表面上和指定的边界内绘制焦点矩形。
...
焦点矩形是Windows用来指示哪个控件具有当前键盘焦点的虚线矩形。

这是一个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的应用程序,如果有必要引用和使用该库。

+0

这完全符合我的需求。谢谢! – tmighty