Using ToolBarButton

image_pdfimage_print

using System;
using System.Drawing;
using System.Windows.Forms;

class ToggleButtons: Form
{
protected Panel panel = new Panel();
protected ToolBar tbar;
protected string strText = “Toggle”;
protected Color clrText = SystemColors.WindowText;
FontStyle fontstyle = FontStyle.Regular;

public static void Main()
{
Application.Run(new ToggleButtons());
}
public ToggleButtons()
{
panel.Parent = this;
panel.Dock = DockStyle.Fill;
panel.BackColor = SystemColors.Window;
panel.ForeColor = SystemColors.WindowText;
panel.Resize += new EventHandler(PanelOnResize);
panel.Paint += new PaintEventHandler(PanelOnPaint);

Bitmap bm = new Bitmap(GetType(), “ToggleButtons.bmp”);

ImageList imglst = new ImageList();
imglst.ImageSize = new Size(bm.Width / 4, bm.Height);
imglst.Images.AddStrip(bm);
imglst.TransparentColor = Color.White;

tbar = new ToolBar();
tbar.ImageList = imglst;
tbar.Parent = this;
tbar.ShowToolTips = true;
tbar.ButtonClick += new ToolBarButtonClickEventHandler(ToolBarOnClick);

FontStyle[] afs = { FontStyle.Bold, FontStyle.Italic,
FontStyle.Underline, FontStyle.Strikeout };

for (int i = 0; i < 4; i++) { ToolBarButton tbarbtn = new ToolBarButton(); tbarbtn.ImageIndex = i; tbarbtn.Style = ToolBarButtonStyle.ToggleButton; tbarbtn.ToolTipText = afs[i].ToString(); tbarbtn.Tag = afs[i]; tbar.Buttons.Add(tbarbtn); } } void ToolBarOnClick(object obj, ToolBarButtonClickEventArgs tbbcea) { ToolBarButton tbarbtn = tbbcea.Button; if (tbarbtn.Tag == null || tbarbtn.Tag.GetType() != typeof(FontStyle)) return; if (tbarbtn.Pushed) fontstyle |= (FontStyle) tbarbtn.Tag; else fontstyle &= ~(FontStyle) tbarbtn.Tag; panel.Invalidate(); } void PanelOnResize(object obj, EventArgs ea) { Panel panel = (Panel) obj; panel.Invalidate(); } void PanelOnPaint(object obj, PaintEventArgs pea) { Panel panel = (Panel) obj; Graphics grfx = pea.Graphics; Font font = new Font("Times New Roman", 72, fontstyle); SizeF sizef = grfx.MeasureString(strText, font); grfx.DrawString(strText, font, new SolidBrush(clrText), (panel.Width - sizef.Width) / 2, (panel.Height - sizef.Height) / 2); } } [/csharp]