我有一个 CheckOnClick 属性设置为 true 的 ToolStripButton。单击它时,Checked 属性变为 true,并且按钮周围出现蓝色边框,并且只要处于选中状态,它就会一直保持在那里。我想去掉这个边框,因为我自己改变了背景颜色来表示按钮被选中。我怎么能那样做?我尝试使用 ToolStripRenderer,但找不到方法。
问问题
2058 次
1 回答
1
实施你自己的ToolStripRenderer
应该会给你你正在寻找的东西。我对使用这些并不熟悉,但我能够通过以下实现获得我相信您正在寻找的功能。
Public Class BorderlessToolStripRenderer
Inherits Windows.Forms.ToolStripProfessionalRenderer
Protected Overrides Sub OnRenderButtonBackground(e As System.Windows.Forms.ToolStripItemRenderEventArgs)
Dim button = TryCast(e.Item, ToolStripButton)
If (button IsNot Nothing AndAlso button.Checked) Then
e.Graphics.Clear(Color.Yellow)
Else
MyBase.OnRenderButtonBackground(e)
End If
End Sub
End Class
我假设您正在使用ToolStripProfessionalRenderer
,所以我继承了那个,并且在按钮处于选中状态时省略了标准背景渲染。这会使鼠标悬停在指示器上,但在选中时会忽略边框,而是呈现黄色背景。
当然,要使用这个类,你只需要像这样设置Renderer
你的属性ToolStrip
Me.ToolStrip1.Renderer = New BorderlessToolStripRenderer()
于 2013-10-17T06:43:12.897 回答