Mega Code Archive

 
Categories / C# / GUI Windows Form
 

Creating an event for a component

using System; using System.Collections; using System.ComponentModel; using System.Drawing; using System.Data; using System.Windows.Forms; public class CompoundControl : System.Windows.Forms.UserControl {     public delegate Boolean ValueChangedEventHandler(int nValue);     private System.Windows.Forms.Label label1;     private System.Windows.Forms.ComboBox comboBox1;     public event ValueChangedEventHandler Changed;     public CompoundControl() {         this.comboBox1 = new System.Windows.Forms.ComboBox();         this.label1 = new System.Windows.Forms.Label();         this.SuspendLayout();         this.comboBox1.DropDownWidth = 121;         this.comboBox1.Items.AddRange(new object[] {"A","B","C","F","G","N"});         this.comboBox1.Location = new System.Drawing.Point(24, 48);         this.comboBox1.Size = new System.Drawing.Size(200, 21);         this.comboBox1.Text = "comboBox1";         this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.OnSelectionIndexChange);         this.label1.Location = new System.Drawing.Point(16, 24);         this.label1.Text = "Select An Entry";         this.Controls.AddRange(new System.Windows.Forms.Control[] {         this.comboBox1,         this.label1});         this.Size = new System.Drawing.Size(240, 96);         this.ResumeLayout(false);     }     private void OnSelectionIndexChange(object sender,         System.EventArgs e) {         if (Changed != null)             Changed(this.comboBox1.SelectedIndex);     } } public class Form1 : System.Windows.Forms.Form {     private System.ComponentModel.Container components = null;     private CompoundControl compoundcomponent1 = null;     public Form1() {         this.compoundcomponent1 = new CompoundControl();         this.compoundcomponent1.Location = new System.Drawing.Point(24, 50);         this.compoundcomponent1.Name = "compound1";         this.compoundcomponent1.Size = new System.Drawing.Size(250, 100);         this.compoundcomponent1.Changed += new CompoundControl.ValueChangedEventHandler(OnChanged);         this.components = new System.ComponentModel.Container();         this.Size = new System.Drawing.Size(300, 300);         this.Controls.AddRange(new System.Windows.Forms.Control[]{this.compoundcomponent1,});     }     private bool OnChanged(int nIndex) {         MessageBox.Show(this, "New Index!" + nIndex);         return true;     }     [STAThread]     static void Main() {         Application.Run(new Form1());     } }