Segue mais um trecho de código, para alterar as cores de selecionado e não selecionado de um radio button.

Coloque essa classe no seu projeto e substitua as new …RadioButton por new ColoredRadioButton.

Atualizado[25/04/2013]

Com esse novo código é possível utilizar o componente diretamente do toolbox, é só inserir a classe no seu projeto.

Alem disso foram implementadas várias melhorias no código com relação a ajuste de cores, background transparent, entre outras.

Segue também um código exemplo. [C#] Alterando a Cor do RadioButton 

Deixem seus comentários e opiniões se de alguma forma esse código o ajudou.

[sections] [section title=”Código Fonte”]

using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;

namespace ChangeColorRadioButton
{
[ToolboxBitmapAttribute(typeof(ColoredRadioButton), ""),
DefaultEvent(""),
Description("Show colored RadioButton.")] public class ColoredRadioButton : RadioButton
{
/// <summary>
/// Required designer variable.
/// </summary>
private IContainer components;

#region Component Designer generated code

/// <summary>
/// Required method for Designer support – do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
}

#endregion

public ColoredRadioButton()
{
OnColor = Color.Green;
OffColor = Color.Red;
InitializeComponent();
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
SetStyle(ControlStyles.SupportsTransparentBackColor, true);
Size = new Size(210, 180);
}
[Browsable(true),
Category("Color"),
Description("BackColor"),
DefaultValue(typeof(Color), "Transparent")] public override sealed Color BackColor
{
get { return base.BackColor; }
set { base.BackColor = value; Invalidate(); }
}

private Color _onColor;
private Color _offColor;
[Browsable(true),
Category("Color"),
Description("On Color"),
DefaultValue(typeof(Color),"Green")] public Color OnColor { get { return _onColor; } set { _onColor = value; Invalidate(); } }

[Browsable(true),
Category("Color"),
Description("Off Color"), DefaultValue(typeof(Color),"Red")] public Color OffColor { get { return _offColor; } set { _offColor = value; Invalidate(); } }

protected override void OnPaint(PaintEventArgs e)
{
if (Appearance == Appearance.Button)
{
base.OnPaint(e);
}
else
{
Graphics g = e.Graphics;
g.SmoothingMode = SmoothingMode.AntiAlias;

if (Parent != null)
{
int index = Parent.Controls.GetChildIndex(this);

for (int i = Parent.Controls.Count – 1; i > index; i–)
{
Control c = Parent.Controls[i];
if (c.Bounds.IntersectsWith(Bounds) && c.Visible)
{
Bitmap bmp = new Bitmap(c.Width,c.Height, g);
c.DrawToBitmap(bmp, c.ClientRectangle);
g.TranslateTransform(c.Left – Left, c.Top – Top);
g.DrawImageUnscaled(bmp, Point.Empty);
g.TranslateTransform(Left – c.Left, Top – c.Top);
bmp.Dispose();
}
}
}

g.Clear(base.BackColor);

int dotDiameter = (ClientRectangle.Height – 2);

var innerRect = new RectangleF(1, 1, dotDiameter, dotDiameter);

var avgColorOncolor = ((int) ((OnColor.R*0.3) + (OnColor.G*0.59) + (OnColor.B*0.11)));
var colorDisabledOncolor = Color.FromArgb(OnColor.A, avgColorOncolor, avgColorOncolor, avgColorOncolor);

var avgColorOffcolor = ((int) ((OffColor.R*0.3) + (OffColor.G*0.59) + (OffColor.B*0.11)));
var colorDisabledOffcolor = Color.FromArgb(OffColor.A, avgColorOffcolor, avgColorOffcolor, avgColorOffcolor);

g.FillEllipse(Checked ? new SolidBrush(Enabled ? OnColor : colorDisabledOncolor): new SolidBrush(Enabled ? OffColor : colorDisabledOffcolor), innerRect);

g.FillEllipse(new SolidBrush(Color.WhiteSmoke),new RectangleF((Height/5.0f), (Height/5.0f), (Height/8.0f), (Height/8.0f)));
g.DrawString(Text, Font, new SolidBrush(Enabled ? ForeColor : SystemColors.InactiveCaptionText),
dotDiameter + 3, 2);
}
}
}
}

[/section] [/sections]
Obrigado e até o próximo post.

DATEK Tecnologia Eletrônica
[C#] Alterando a Cor do RadioButton
Tags:                     

Deixe uma resposta

%d blogueiros gostam disto: