using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
enum DateTimeFormat {
ShowClock,
ShowDay
}
public class MainWindow : Form {
DateTimeFormat dtFormat = DateTimeFormat.ShowClock;
private ToolStripMenuItem currentCheckedItem;
public MainWindow() {
InitializeComponent();
BackColor = Color.CadetBlue;
currentCheckedItem = currentTimeToolStripMenuItem;
currentCheckedItem.Checked = true;
}
private void timerDateTimeUpdate_Tick(object sender, EventArgs e) {
string panelInfo = "";
if (dtFormat == DateTimeFormat.ShowClock)
panelInfo = DateTime.Now.ToLongTimeString();
else
panelInfo = DateTime.Now.ToLongDateString();
toolStripStatusLabelClock.Text = panelInfo;
}
private void currentTimeToolStripMenuItem_Click(object sender, EventArgs e) {
currentCheckedItem.Checked = false;
dtFormat = DateTimeFormat.ShowClock;
currentCheckedItem = currentTimeToolStripMenuItem;
currentCheckedItem.Checked = true;
}
private void dayoftheWeekToolStripMenuItem_Click(object sender, EventArgs e) {
currentCheckedItem.Checked = false;
dtFormat = DateTimeFormat.ShowDay;
currentCheckedItem = dayoftheWeekToolStripMenuItem;
currentCheckedItem.Checked = true;
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e) {
Application.Exit();
}
private void aboutToolStripMenuItem_Click(object sender, EventArgs e) {
MessageBox.Show("My StatusStripApp!");
}
private void exitToolStripMenuItem_MouseHover(object sender, EventArgs e) {
toolStripStatusLabelMenuState.Text = "Exits the app.";
}
private void aboutToolStripMenuItem_MouseHover(object sender, EventArgs e) {
toolStripStatusLabelMenuState.Text = "Shows about box.";
}
private void dayoftheWeekToolStripMenuItem_MouseHover(object sender, EventArgs e) {
toolStripStatusLabelMenuState.Text = "Shows the day of the week.";
}
private void currentTimeToolStripMenuItem_MouseHover(object sender, EventArgs e) {
toolStripStatusLabelMenuState.Text = "Shows the current time.";
}
private void SetReadyPrompt(object sender, EventArgs e) {
toolStripStatusLabelMenuState.Text = "Ready.";
}
private void InitializeComponent() {
this.mainStatusStrip = new System.Windows.Forms.StatusStrip();
this.toolStripStatusLabelMenuState = new System.Windows.Forms.ToolStripStatusLabel();
this.toolStripStatusLabelClock = new System.Windows.Forms.ToolStripStatusLabel();
this.toolStripDropDownButtonDateTime = new System.Windows.Forms.ToolStripDropDownButton();
this.dayoftheWeekToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.currentTimeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.timerDateTimeUpdate = new System.Windows.Forms.Timer();
this.mainStatusStrip.SuspendLayout();
this.menuStrip1.SuspendLayout();
this.SuspendLayout();
//
// mainStatusStrip
//
this.mainStatusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripStatusLabelMenuState,
this.toolStripStatusLabelClock,
this.toolStripDropDownButtonDateTime});
this.mainStatusStrip.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Table;
this.mainStatusStrip.Location = new System.Drawing.Point(0, 78);
this.mainStatusStrip.Name = "mainStatusStrip";
this.mainStatusStrip.Size = new System.Drawing.Size(361, 27);
this.mainStatusStrip.TabIndex = 0;
this.mainStatusStrip.Text = "statusStrip1";
//
// toolStripStatusLabelMenuState
//
this.toolStripStatusLabelMenuState.Name = "toolStripStatusLabelMenuState";
this.toolStripStatusLabelMenuState.Spring = true;
this.toolStripStatusLabelMenuState.TextAlign = System.Drawing.ContentAlignment.TopLeft;
//
// toolStripStatusLabelClock
//
this.toolStripStatusLabelClock.BorderSides = ((System.Windows.Forms.ToolStripStatusLabelBorderSides)((((System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top)
| System.Windows.Forms.ToolStripStatusLabelBorderSides.Right)
| System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom)));
this.toolStripStatusLabelClock.Name = "toolStripStatusLabelClock";
//
// toolStripDropDownButtonDateTime
//
this.toolStripDropDownButtonDateTime.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.toolStripDropDownButtonDateTime.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.dayoftheWeekToolStripMenuItem,
this.currentTimeToolStripMenuItem});
this.toolStripDropDownButtonDateTime.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripDropDownButtonDateTime.Name = "toolStripDropDownButtonDateTime";
this.toolStripDropDownButtonDateTime.Text = "toolStripDropDownButton1";
//
// dayoftheWeekToolStripMenuItem
//
this.dayoftheWeekToolStripMenuItem.Name = "dayoftheWeekToolStripMenuItem";
this.dayoftheWeekToolStripMenuItem.Text = "Day of the Week";
this.dayoftheWeekToolStripMenuItem.MouseLeave += new System.EventHandler(this.SetReadyPrompt);
this.dayoftheWeekToolStripMenuItem.MouseHover += new System.EventHandler(this.dayoftheWeekToolStripMenuItem_MouseHover);
this.dayoftheWeekToolStripMenuItem.Click += new System.EventHandler(this.dayoftheWeekToolStripMenuItem_Click);
//
// currentTimeToolStripMenuItem
//
this.currentTimeToolStripMenuItem.Name = "currentTimeToolStripMenuItem";
this.currentTimeToolStripMenuItem.Text = "Current Time";
this.currentTimeToolStripMenuItem.MouseLeave += new System.EventHandler(this.SetReadyPrompt);
this.currentTimeToolStripMenuItem.MouseHover += new System.EventHandler(this.currentTimeToolStripMenuItem_MouseHover);
this.currentTimeToolStripMenuItem.Click += new System.EventHandler(this.currentTimeToolStripMenuItem_Click);
//
// menuStrip1
//
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.fileToolStripMenuItem,
this.helpToolStripMenuItem});
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(361, 24);
this.menuStrip1.TabIndex = 1;
this.menuStrip1.Text = "menuStrip1";
//
// fileToolStripMenuItem
//
this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.exitToolStripMenuItem});
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
this.fileToolStripMenuItem.Text = "&File";
//
// exitToolStripMenuItem
//
this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
this.exitToolStripMenuItem.Text = "E&xit";
this.exitToolStripMenuItem.MouseLeave += new System.EventHandler(this.SetReadyPrompt);
this.exitToolStripMenuItem.MouseHover += new System.EventHandler(this.exitToolStripMenuItem_MouseHover);
this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
//
// helpToolStripMenuItem
//
this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.aboutToolStripMenuItem});
this.helpToolStripMenuItem.Name = "helpToolStripMenuItem";
this.helpToolStripMenuItem.Text = "&Help";
//
// aboutToolStripMenuItem
//
this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem";
this.aboutToolStripMenuItem.Text = "&About";
this.aboutToolStripMenuItem.MouseLeave += new System.EventHandler(this.SetReadyPrompt);
this.aboutToolStripMenuItem.MouseHover += new System.EventHandler(this.aboutToolStripMenuItem_MouseHover);
this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click);
//
// timerDateTimeUpdate
//
this.timerDateTimeUpdate.Enabled = true;
this.timerDateTimeUpdate.Interval = 1000;
this.timerDateTimeUpdate.Tick += new System.EventHandler(this.timerDateTimeUpdate_Tick);
//
// MainWindow
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(361, 105);
this.Controls.Add(this.mainStatusStrip);
this.Controls.Add(this.menuStrip1);
this.MainMenuStrip = this.menuStrip1;
this.Name = "MainWindow";
this.Text = "Form1";
this.mainStatusStrip.ResumeLayout(false);
this.menuStrip1.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
private System.Windows.Forms.StatusStrip mainStatusStrip;
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabelMenuState;
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabelClock;
private System.Windows.Forms.ToolStripDropDownButton toolStripDropDownButtonDateTime;
private System.Windows.Forms.MenuStrip menuStrip1;
private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem dayoftheWeekToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem currentTimeToolStripMenuItem;
private System.Windows.Forms.Timer timerDateTimeUpdate;
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Application.Run(new MainWindow());
}
}
Month: February 2011
Use StatusBarPanel
using System;
using System.Drawing;
using System.Windows.Forms;
class MenuHelpFirstTry: Form
{
StatusBarPanel sbpMenuHelp;
string strSavePanelText;
public static void Main()
{
Application.Run(new MenuHelpFirstTry());
}
public MenuHelpFirstTry()
{
StatusBar sb = new StatusBar();
sb.Parent = this;
sb.ShowPanels = true;
sbpMenuHelp = new StatusBarPanel();
sbpMenuHelp.Text = "Ready";
sbpMenuHelp.AutoSize = StatusBarPanelAutoSize.Spring;
sb.Panels.Add(sbpMenuHelp);
Menu = new MainMenu();
EventHandler ehSelect = new EventHandler(MenuOnSelect);
MenuItem mi = new MenuItem("File");
mi.Select += ehSelect;
Menu.MenuItems.Add(mi);
mi = new MenuItem("Open");
mi.Select += ehSelect;
Menu.MenuItems[0].MenuItems.Add(mi);
mi = new MenuItem("Close");
mi.Select += ehSelect;
Menu.MenuItems[0].MenuItems.Add(mi);
mi = new MenuItem("Save");
mi.Select += ehSelect;
Menu.MenuItems[0].MenuItems.Add(mi);
mi = new MenuItem("Edit");
mi.Select += ehSelect;
Menu.MenuItems.Add(mi);
mi = new MenuItem("Cut");
mi.Select += ehSelect;
Menu.MenuItems[1].MenuItems.Add(mi);
mi = new MenuItem("Copy");
mi.Select += ehSelect;
Menu.MenuItems[1].MenuItems.Add(mi);
mi = new MenuItem("Paste");
mi.Select += ehSelect;
Menu.MenuItems[1].MenuItems.Add(mi);
}
protected override void OnMenuStart(EventArgs ea)
{
strSavePanelText = sbpMenuHelp.Text;
}
protected override void OnMenuComplete(EventArgs ea)
{
sbpMenuHelp.Text = strSavePanelText;
}
void MenuOnSelect(object obj, EventArgs ea)
{
MenuItem mi = (MenuItem) obj;
string str;
switch (mi.Text)
{
case "File": str = "file"; break;
case "Open": str = "Open"; break;
case "Close": str = "Close"; break;
case "Save": str = "Save"; break;
case "Edit": str = "edit"; break;
case "Cut": str = "cut"; break;
case "Copy": str = "Copy"; break;
case "Paste": str = "Paste"; break;
default: str = ""; break;
}
sbpMenuHelp.Text = str;
}
}
Add StatusPanels to StatusBar
using System;
using System.Drawing;
using System.Windows.Forms;
class TwoStatusBarPanels: Form
{
public static void Main()
{
Application.Run(new TwoStatusBarPanels());
}
public TwoStatusBarPanels()
{
Text = "Two Status Bar Panels";
StatusBar sb = new StatusBar();
sb.Parent = this;
sb.ShowPanels = true;
StatusBarPanel sbpanel1 = new StatusBarPanel();
sbpanel1.Text = "Panel 1";
StatusBarPanel sbpanel2 = new StatusBarPanel();
sbpanel2.Text = "Panel 2";
sb.Panels.Add(sbpanel1);
sb.Panels.Add(sbpanel2);
}
}
Two Panels with Splitter
using System;
using System.Drawing;
using System.Windows.Forms;
class TwoPanelsWithSplitter: Form
{
public static void Main()
{
Application.Run(new TwoPanelsWithSplitter());
}
public TwoPanelsWithSplitter()
{
Panel panel1 = new Panel();
panel1.Parent = this;
panel1.Dock = DockStyle.Fill;
panel1.BackColor = Color.Lime;
panel1.Resize += new EventHandler(PanelOnResize);
panel1.Paint += new PaintEventHandler(PanelOnPaint);
Splitter split = new Splitter();
split.Parent = this;
split.Dock = DockStyle.Right;
Panel panel2 = new Panel();
panel2.Parent = this;
panel2.Dock = DockStyle.Right;
panel2.BackColor = Color.Red;
panel2.Resize += new EventHandler(PanelOnResize);
panel2.Paint += new PaintEventHandler(PanelOnPaint);
}
void PanelOnResize(object obj, EventArgs ea)
{
((Panel) obj).Invalidate();
}
void PanelOnPaint(object obj, PaintEventArgs pea)
{
Panel panel = (Panel) obj;
Graphics grfx = pea.Graphics;
grfx.DrawEllipse(Pens.Black, 0, 0,
panel.Width - 1, panel.Height - 1);
}
}
One Panel with Splitter
using System;
using System.Drawing;
using System.Windows.Forms;
class OnePanelWithSplitter: Form
{
public static void Main()
{
Application.Run(new OnePanelWithSplitter());
}
public OnePanelWithSplitter()
{
Text = "One Panel with Splitter";
Splitter split = new Splitter();
split.Parent = this;
split.Dock = DockStyle.Left;
Panel panel = new Panel();
panel.Parent = this;
panel.Dock = DockStyle.Left;
panel.BackColor = Color.Lime;
panel.Resize += new EventHandler(PanelOnResize);
panel.Paint += new PaintEventHandler(PanelOnPaint);
}
void PanelOnResize(object obj, EventArgs ea)
{
((Panel) obj).Invalidate();
}
void PanelOnPaint(object obj, PaintEventArgs pea)
{
Panel panel = (Panel) obj;
Graphics grfx = pea.Graphics;
grfx.DrawEllipse(Pens.Black, 0, 0,
panel.Width - 1, panel.Height - 1);
}
}
Display message in StatusBar
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
public class Form1 : Form
{
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.ComboBox lstFonts;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.StatusStrip statusBar;
private System.Windows.Forms.ToolStripStatusLabel statusLabel;
public Form1() {
InitializeComponent();
System.Drawing.Text.InstalledFontCollection fonts = new System.Drawing.Text.InstalledFontCollection();
foreach (FontFamily family in fonts.Families)
{
lstFonts.Items.Add(family.Name);
}
}
private void lstFonts_SelectedIndexChanged(object sender, EventArgs e)
{
this.Invalidate();
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
if (lstFonts.SelectedIndex != -1)
{
e.Graphics.DrawString(lstFonts.Text, new Font(lstFonts.Text, 50), Brushes.Black, 10, 50);
statusBar.Items[0].Text = lstFonts.Text;
}
}
private void InitializeComponent()
{
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.lstFonts = new System.Windows.Forms.ComboBox();
this.label1 = new System.Windows.Forms.Label();
this.statusBar = new System.Windows.Forms.StatusStrip();
this.statusLabel = new System.Windows.Forms.ToolStripStatusLabel();
this.groupBox1.SuspendLayout();
this.statusBar.SuspendLayout();
this.SuspendLayout();
//
// groupBox1
//
this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox1.Controls.Add(this.lstFonts);
this.groupBox1.Controls.Add(this.label1);
this.groupBox1.Location = new System.Drawing.Point(7, 0);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(497, 40);
this.groupBox1.TabIndex = 1;
this.groupBox1.TabStop = false;
//
// lstFonts
//
this.lstFonts.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.lstFonts.DropDownWidth = 340;
this.lstFonts.FormattingEnabled = true;
this.lstFonts.Location = new System.Drawing.Point(100, 12);
this.lstFonts.Name = "lstFonts";
this.lstFonts.Size = new System.Drawing.Size(340, 21);
this.lstFonts.TabIndex = 1;
this.lstFonts.SelectedIndexChanged += new System.EventHandler(this.lstFonts_SelectedIndexChanged);
//
// label1
//
this.label1.Location = new System.Drawing.Point(12, 16);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(80, 12);
this.label1.TabIndex = 0;
this.label1.Text = "Choose Font:";
//
// statusBar
//
this.statusBar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.statusLabel});
this.statusBar.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Table;
this.statusBar.Location = new System.Drawing.Point(0, 155);
this.statusBar.Name = "statusBar";
this.statusBar.Size = new System.Drawing.Size(516, 22);
this.statusBar.TabIndex = 2;
this.statusBar.Text = "statusStrip1";
//
// statusLabel
//
this.statusLabel.Name = "statusLabel";
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(516, 177);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.statusBar);
this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Text = "Font Viewer";
this.Load += new System.EventHandler(this.Form1_Load);
this.groupBox1.ResumeLayout(false);
this.statusBar.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.Run(new Form1());
}
}
Use Label as status bar
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
public class Form1 : Form
{
private System.Windows.Forms.Label lblCount;
List<Rectangle> squares = new List<Rectangle>();
public Form1() {
InitializeComponent();
}
private void NonOptimizedSquares_Paint(object sender, PaintEventArgs e)
{
Pen pen = new Pen(Color.Red, 10);
foreach (Rectangle square in squares) {
e.Graphics.DrawRectangle(pen, square);
}
pen.Dispose();
lblCount.Text = " " + squares.Count.ToString() + " squares";
}
private void NonOptimizedSquares_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
Rectangle square = new Rectangle(e.X, e.Y, 20, 20);
squares.Add(square);
square.Inflate(1, 1);
Invalidate(square);
}
}
private void InitializeComponent()
{
this.lblCount = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// lblCount
//
this.lblCount.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.lblCount.Dock = System.Windows.Forms.DockStyle.Bottom;
this.lblCount.Location = new System.Drawing.Point(0, 251);
this.lblCount.Name = "lblCount";
this.lblCount.Padding = new System.Windows.Forms.Padding(2);
this.lblCount.Size = new System.Drawing.Size(299, 21);
this.lblCount.TabIndex = 0;
//
// NonOptimizedSquares
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(299, 272);
this.Controls.Add(this.lblCount);
this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Name = "NonOptimizedSquares";
this.Text = "NonOptimizedSquares";
this.Paint += new System.Windows.Forms.PaintEventHandler(this.NonOptimizedSquares_Paint);
this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.NonOptimizedSquares_MouseDown);
this.ResumeLayout(false);
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.Run(new Form1());
}
}

