我想创建自定义按钮。 是否按钮已添加到控件中,它会覆盖“绘制事件”,并使颜色移动并从左向右填充,这看起来像进度条。
这是我的逻辑。但是,我认为这不是一个正确的方法。请建议正确的方法来获取动画BackColor。 此代码基于按钮大小:
private void customButton()
{
Button customButton=new Button();
customButton.Size.width=1;
custonButton.BackColor=Color.Green;
this.Controls.Add(customButton);
for (int i = 0; i<50; i+= 5)
{
customButton.Size.width += 1;
}
}
但是,这个代码创建一个按钮的宽度= 50px;,并且宽度将从左向右扩展,看起来像进度栏 我想创建并覆盖默认的OnPaint事件,创建一个具有50pixel的按钮,backColor将在父控件添加时从左向右移动(动画)。 我是C#的新手,对OnPaint事件了解不多。
答案 0 :(得分:0)
关于如何更改按钮的背景内容的快速而肮脏的示例。
var bmp = new Bitmap(button1.Width, button1.Height);
var g = Graphics.FromImage(bmp);
var rect = new Rectangle(0, 0, bmp.Width, bmp.Height);
using (var lgb = new LinearGradientBrush(rect, Color.Black, Color.LimeGreen, 0f))
g.FillRectangle(lgb, rect);
button1.BackgroundImage = bmp;
如果您愿意,可以将按钮本身修改为不具有3D样式,调整大小仍然可以正常工作。这里的要点是绘制它而不是调整它。