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();
}
}
Related examples in the same category