Mega Code Archive

 
Categories / C# / GUI Windows Form
 

Creating a menu on the fly

using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; public class Form1 : System.Windows.Forms.Form {     private System.Windows.Forms.MainMenu File = new System.Windows.Forms.MainMenu();     private System.Windows.Forms.MenuItem menuItem1 = new System.Windows.Forms.MenuItem();     private System.Windows.Forms.MenuItem menuItem2 = new System.Windows.Forms.MenuItem();     private System.Windows.Forms.MenuItem menuItem3 = new System.Windows.Forms.MenuItem();     private System.Windows.Forms.Button button1 = new System.Windows.Forms.Button();     private System.Windows.Forms.Button button2 = new System.Windows.Forms.Button();     private System.ComponentModel.Container components = null;     private int nIndex = 0;     public Form1() {         this.SuspendLayout();         this.File.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {this.menuItem1});         this.menuItem1.Index = 0;         this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { this.menuItem2, this.menuItem3});         this.menuItem1.Text = "File";         this.menuItem2.Index = 0;         this.menuItem2.Text = "&Close";         this.menuItem2.Click += new System.EventHandler(this.menuItem2_Click);         this.menuItem3.Index = 1;         this.menuItem3.Text = "E&xit";         this.button1.Location = new System.Drawing.Point(40, 208);         this.button1.Name = "button1";         this.button1.TabIndex = 0;         this.button1.Text = "&Add";         this.button1.Click += new System.EventHandler(this.button1_Click);         this.button2.Location = new System.Drawing.Point(176, 208);         this.button2.Name = "button2";         this.button2.TabIndex = 1;         this.button2.Text = "&Close";         this.button2.Click += new System.EventHandler(this.button2_Click);         this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);         this.ClientSize = new System.Drawing.Size(292, 273);         this.Controls.AddRange(new System.Windows.Forms.Control[] { this.button2, this.button1});         this.Menu = this.File;         this.ResumeLayout(false);     }     [STAThread]     static void Main() {         Application.Run(new Form1());     }     private void button2_Click(object sender, System.EventArgs e) {         Close();     }     private void menuItemHandler(object sender, System.EventArgs e) {         MessageBox.Show(this, "Menu Handler Called");         MenuItem mi = (MenuItem)sender;         MessageBox.Show(this, "Menu Item: " + mi.Text);     }     private void button1_Click(object sender, System.EventArgs e) {         MenuItem mi = new MenuItem("File " + (nIndex + 1), new EventHandler(menuItemHandler));         this.menuItem1.MenuItems.Add(mi);         nIndex++;     }     private void menuItem2_Click(object sender, System.EventArgs e) {         Close();     } }