繁体   English   中英

VB.NET绘制焦点矩形

[英]VB.NET Draw focus rectangle

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

我想知道是否有相当于

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

在GDI +类/受管理的VB.NET的System.Drawing中,将完成相同的操作。

谢谢!

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

因此,我想问一问是否还有其他方法可以保留在位图上。

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

该方法还有一个重载 ,可让您指定前景色和背景色。

它位于System.Windows.Forms.dll库定义的System.Windows.Forms命名空间中,因此按照您的要求,它在技术上不属于System.Drawing库的一部分,但是您甚至应该能够引用和使用该库在WinForm应用程序外部(如果需要)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM