我们有一个带有许多FlatStyle按钮的Windows Forms项目。
当我们禁用按钮时,按钮的颜色会自动更改。:(
是否有可能以某种方式覆盖这一点,以便我们可以自己控制颜色?
您需要使用EnabledChanged事件来设置所需的颜色。这是一个例子。
private void Button1_EnabledChanged(object sender, System.EventArgs e)
{
Button1.ForeColor = sender.enabled == false ? Color.Blue : Color.Red;
Button1.BackColor = Color.AliceBlue;
}
根据您的要求使用所需的颜色。
您还需要使用paint事件。
private void Button1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
dynamic btn = (Button)sender;
dynamic drawBrush = new SolidBrush(btn.ForeColor);
dynamic sf = new StringFormat {
Alignment = StringAlignment.Center,
LineAlignment = StringAlignment.Center };
Button1.Text = string.Empty;
e.Graphics.DrawString("Button1", btn.Font, drawBrush, e.ClipRectangle, sf);
drawBrush.Dispose();
sf.Dispose();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句