You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
1.9 KiB
C#

Subclass CheckBox
using System;
using System.Drawing;
using System.Windows.Forms;
class CustomCheckBox: Form
{
public static void Main()
{
Application.Run(new CustomCheckBox());
}
public CustomCheckBox()
{
int cyText = Font.Height;
int cxText = cyText / 2;
FontStyle[] afs = { FontStyle.Bold, FontStyle.Italic,
FontStyle.Underline, FontStyle.Strikeout };
Label label = new Label();
label.Parent = this;
label.Text = "I Love Clementine";
label.AutoSize = true;
for (int j = 0; j < 4; j++)
{
FontStyleCheckBox chkbox = new FontStyleCheckBox();
chkbox.Parent = this;
chkbox.Text = afs[j].ToString();
chkbox.fontstyle = afs[j];
chkbox.Location = new Point(2 * cxText,
(4 + 3 * j) * cyText / 2);
chkbox.Size = new Size(12 * cxText, cyText);
chkbox.CheckedChanged += new EventHandler(CheckBoxOnCheckedChanged);
}
}
void CheckBoxOnCheckedChanged(object obj, EventArgs ea)
{
FontStyle fs = 0;
Label label = null;
for (int j = 0; j < Controls.Count; j++)
{
Control ctrl = Controls[j];
if (ctrl.GetType() == typeof(Label))
label = (Label) ctrl;
else if (ctrl.GetType() == typeof(FontStyleCheckBox))
if (((FontStyleCheckBox) ctrl).Checked)
fs |= ((FontStyleCheckBox) ctrl).fontstyle;
}
label.Font = new Font(label.Font, fs);
}
}
class FontStyleCheckBox: CheckBox
{
public FontStyle fontstyle;
}