如何在禁用按钮中显示图像?

时间:2009-10-15 08:47:12

标签: vb.net

我在vb.net中的按钮控件中放置了图像和backgroundimage 如果按钮处于禁用状态,图像也显示为禁用(没有图像颜色)状态。但我想要一个图像作为启用(即图像应该是彩色的),同时按钮将被禁用

1 个答案:

答案 0 :(得分:1)

创建一个继承自Button Class的用户控件,然后重写OnPaint()方法。

请注意,在继承用户控件之后,您将看到一条消息,指示控件的partial-class中需要修复,使用IDE的建议来解决此问题,并从设计器中删除(现在)过时的AutoScaleMode属性代码(在构造函数中)。

编辑:我错了,你必须覆盖OnPaint()方法,并完全绘制按钮,包括它的文本。

Public Class myButton : Inherits System.Windows.Forms.Button
Protected Overrides Sub OnPaint(ByVal pevent As System.Windows.Forms.PaintEventArgs)
    'MyBase.OnPaint(pevent)
    pevent.Graphics.DrawImage(myimage, 0, 0, myimage.Width, myimage.Height)
    pevent.Graphics.DrawString(Me.Text, Me.Font, SystemBrushes.GrayText, 0, 0)
End Sub
End Class