按钮的绘制代码在内部类中被严格锁定,您不能重写它,也不能重复使用它。公共ButtonRenderer类不处理禁用的按钮。
有一件事可以奏效,那就是玩具有backgroundimage属性的游戏。向项目中添加新类并粘贴下面显示的代码。将新控件从工具栏顶部放到窗体上。
using System;
using System.Drawing;
using System.Windows.Forms;
public class MyButton : Button {
protected override void OnSizeChanged(EventArgs e) {
base.OnSizeChanged(e);
Bitmap bmp = new Bitmap(this.Width, this.Height);
using (Graphics gr = Graphics.FromImage(bmp)) {
ButtonRenderer.DrawButton(gr,
new Rectangle(0, 0, bmp.Width, bmp.Height),
System.Windows.Forms.VisualStyles.PushButtonState.Normal);
}
if (this.BackgroundImage != null) this.BackgroundImage.Dispose();
this.BackgroundImage = bmp;
}
}