using System;
using System.Drawing;
using System.Windows.Forms;
public class LabelFontChangedByCheckBoxes : Form
{
Label lbl;
Panel pnl;
FontStyle[] theStyles;
public LabelFontChangedByCheckBoxes()
{
Size = new Size(300,250);
lbl = new Label();
lbl.Parent = this;
lbl.Text = "test";
lbl.Location = new Point(0,0);
lbl.AutoSize = true;
lbl.BorderStyle = BorderStyle.Fixed3D;
int yDelta = lbl.Height + 10;
FontStyle theEnum = new FontStyle();
theStyles = (FontStyle[])Enum.GetValues(theEnum.GetType());
pnl = new Panel();
pnl.Parent = this;
pnl.Location = new Point(0, yDelta );
pnl.Size = new Size(150, (theStyles.Length + 1) * yDelta);
pnl.BorderStyle = BorderStyle.FixedSingle;
int i = 1;
CheckBox cb;
foreach (FontStyle style in theStyles)
{
cb = new CheckBox();
cb.Parent = pnl;
cb.Location = new Point(25, (yDelta * (i - 1)) + 10);
cb.Size = new Size(75,20);
cb.Text = style.ToString();
cb.Tag = style;
cb.CheckedChanged += new System.EventHandler(cb_CheckedChanged);
if (cb.Text == "Regular")
cb.Checked = true;
i++;
}
}
static void Main()
{
Application.Run(new LabelFontChangedByCheckBoxes());
}
private void cb_CheckedChanged(object sender, EventArgs e)
{
FontStyle fs = 0;
for (int i = 0; i < pnl.Controls.Count; i++)
{
CheckBox cb = (CheckBox)pnl.Controls[i];
if (cb.Checked)
fs |= (FontStyle)cb.Tag;
if (((CheckBox)pnl.Controls[i]).Checked)
fs |= (FontStyle)((CheckBox)pnl.Controls[i]).Tag;
}
lbl.Font = new Font(lbl.Font, fs);
}
}