how to change the check image on a checkbox
.net, c#, checkbox, winforms
Solution
If you are looking for how to do this in Winforms, the simple answer is to create a new checkbox class that derives from CheckBox, then override the OnPaint method.
Here is an example on how to create custom looking checkboxes by overriding the `OnPaint` method:
public class CustomCheckBox : CheckBox
{
public CustomCheckBox()
{
this.SetStyle(ControlStyles.UserPaint, true);
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
}
protected override void OnPaint(PaintEventArgs pevent)
{
base.OnPaint(pevent);
if (this.Checked)
{
pevent.Graphics.FillRectangle(new SolidBrush(Color.Blue), new Rectangle(0, 0, 16, 16));
}
else
{
pevent.Graphics.FillRectangle(new SolidBrush(Color.Red), new Rectangle(0, 0, 16, 16));
}
}
}
It's very simple, but it gives you the basic idea.
Problem
it has text, an image, and then the checkbox, I want to use a better image for the check, but cannot find a way to change the checked and unchecked images ``` this.checkBox1.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; this.checkBox1.Checked = true; this.checkBox1.CheckState = System.Windows.Forms.CheckState.Checked; this.checkBox1.Image = global::ClientExam.Properties.Resources.action32; this.checkBox1.Location = new System.Drawing.Point(145, 140); this.checkBox1.Name = "checkBox1"; this.checkBox1.Size = new System.Drawing.Size(273, 127); this.checkBox1.TabIndex = 0; this.checkBox1.Text = "checkBox1"; this.checkBox1.TextImageRelation = System.Windows.Forms.TextImageRelation.TextBeforeImage; this.checkBox1.UseVisualStyleBackColor = true; ``` anybody know of one that doesn't require me to write my own control?