CheckBox.CheckedChanged
using System; using System.Drawing; using System.Windows.Forms; class RadioButtons: Form { bool bFillEllipse; Color colorEllipse; static void Main() { Application.Run(new RadioButtons()); } RadioButtons() { ResizeRedraw = true; string[] astrColor = { "Black", "Blue", "Green", "Cyan"}; GroupBox grpbox = new GroupBox(); grpbox.Parent = this; grpbox.Text = "Color"; grpbox.Location = new Point(Font.Height / 2, Font.Height / 2); grpbox.Size = new Size(9 * Font.Height, (3 * astrColor.Length + 4) * Font.Height / 2); for (int i = 0; i < astrColor.Length; i++) { RadioButton radiobtn = new RadioButton(); radiobtn.Parent = grpbox; radiobtn.Text = astrColor[i]; radiobtn.Location = new Point(Font.Height,3 * (i + 1) * Font.Height / 2); radiobtn.Size = new Size(7 * Font.Height,3 * Font.Height / 2); radiobtn.CheckedChanged += new EventHandler(RadioButtonOnCheckedChanged); radiobtn.Checked = true; } CheckBox chkbox = new CheckBox(); chkbox.Parent = this; chkbox.Text = "Fill Ellipse"; chkbox.Location = new Point(Font.Height, 3 * (astrColor.Length + 2) * Font.Height / 2); chkbox.Size = new Size(Font.Height * 7, 3 * Font.Height / 2); chkbox.CheckedChanged += new EventHandler(CheckBoxOnCheckedChanged); } void RadioButtonOnCheckedChanged(object obj, EventArgs ea) { RadioButton radiobtn = (RadioButton) obj; if(radiobtn.Checked) { colorEllipse = Color.FromName(radiobtn.Text); Invalidate(false); } } void CheckBoxOnCheckedChanged(object obj, EventArgs ea) { bFillEllipse = ((CheckBox)obj).Checked; Invalidate(false); } protected override void OnPaint(PaintEventArgs pea) { Graphics grfx = pea.Graphics; Rectangle rect = new Rectangle(10 * Font.Height, 0, ClientSize.Width - 10 * Font.Height - 1, ClientSize.Height - 1); if(bFillEllipse) grfx.FillEllipse(new SolidBrush(colorEllipse), rect); else grfx.DrawEllipse(new Pen(colorEllipse), rect); } }
1. | new CheckBox() | ||
2. | extends CheckBox | ||
3. | CheckBox.CheckAlign | ||
4. | CheckBox.Checked | ||
5. | CheckBox.ThreeState |