using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; public class MainForm : System.Windows.Forms.Form { private StatusBar statusBar = new StatusBar(); private StatusBarPanel sbPnlPrompt = new StatusBarPanel(); private StatusBarPanel sbPnlTime = new StatusBarPanel(); private Timer timer1 = new Timer(); private MainMenu mainMenu; private System.ComponentModel.Container components; public MainForm() { InitializeComponent(); Text = "Status Bar Example"; CenterToScreen(); BackColor = Color.CadetBlue; // Configure the timer. timer1.Interval = 1000; timer1.Enabled = true; timer1.Tick += new EventHandler(timer1_Tick); this.MenuComplete += new EventHandler(StatusForm_MenuDone); BuildMenuSystem(); BuildStatBar(); } private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.Size = new System.Drawing.Size(300,300); this.Text = "Form1"; } static void Main() { Application.Run(new MainForm()); } // Clicked handlers. private void FileExit_Clicked(object sender, EventArgs e) { this.Close(); } // Help | About Menu item handler private void HelpAbout_Clicked(object sender, EventArgs e) { MessageBox.Show("The amazing menu app..."); } // Selected handlers. private void FileExit_Selected(object sender, EventArgs e) { sbPnlPrompt.Text = "Terminates this app"; } private void HelpAbout_Selected(object sender, EventArgs e) { sbPnlPrompt.Text = "Displays app info"; } // Other handlers... private void StatusForm_MenuDone(object sender, EventArgs e) { sbPnlPrompt.Text = "Ready"; } private void timer1_Tick(object sender, EventArgs e) { DateTime t = DateTime.Now; string s = t.ToLongTimeString() ; sbPnlTime.Text = s ; } private void BuildMenuSystem() { mainMenu = new MainMenu(); MenuItem miFile = mainMenu.MenuItems.Add("&File"); miFile.MenuItems.Add(new MenuItem("E&xit",new EventHandler(this.FileExit_Clicked), Shortcut.CtrlX)); miFile.MenuItems[0].Select += new EventHandler(FileExit_Selected); MenuItem miHelp = mainMenu.MenuItems.Add("Help"); miHelp.MenuItems.Add(new MenuItem("&About", new EventHandler(this.HelpAbout_Clicked), Shortcut.CtrlA)); miHelp.MenuItems[0].Select += new EventHandler(HelpAbout_Selected); this.Menu = mainMenu; } private void BuildStatBar() { // Configure the status bar. statusBar.ShowPanels = true; statusBar.Panels.AddRange(new StatusBarPanel[] {sbPnlPrompt, sbPnlTime}); // Configure prompt panel. sbPnlPrompt.BorderStyle = StatusBarPanelBorderStyle.None; sbPnlPrompt.AutoSize = StatusBarPanelAutoSize.Spring; sbPnlPrompt.Width = 62; sbPnlPrompt.Text = "Ready"; // Configure time pane. sbPnlTime.Alignment = HorizontalAlignment.Right; sbPnlTime.Width = 76; try { Icon i = new Icon("status.ico"); sbPnlPrompt.Icon = i; } catch(Exception e) { Console.WriteLine(e.Message); } this.Controls.Add(statusBar); } }