C#中動態創建控件及事件處理程序

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace Miner
{
 /// <summary>
 /// Summary des cription for Form1.
 /// </summary>
 public class Form1 : System.Windows.Forms.Form
 {
   private System.Windows.Forms.Panel panel1;
   /// <summary>
   /// Required designer variable.
   /// </summary>
   ///

   private Button[] n =new Button[100];
   private int[] kn=new int[100];

   private System.ComponentModel.Container components = null;
 
   public Form1()
   {
    //
    // Required for Windows Form Designer support
    //
    InitializeComponent();
    //
    // TODO: Add any constructor code after InitializeComponent call
    //
   }

   /// <summary>
   /// Clean up any resources being used.
   /// </summary>
   protected override void Dispose( bool disposing )
   {
    if( disposing )
    {
     if (components != null)
     {
     components.Dispose();
     }
    }
    base.Dispose( disposing );
   }

   #region Windows Form Designer generated code
   /// <summary>
   /// Required method for Designer support - do not modify
   /// the contents of this method with the code editor.
   /// </summary>
   private void InitializeComponent()
   {
    this.panel1 = new System.Windows.Forms.Panel();
    this.SuspendLayout();
    //
    // panel1
    //
    this.panel1.Location = new System.Drawing.Point(8, 8);
    this.panel1.Name = "panel1";
    this.panel1.Size = new System.Drawing.Size(400, 400);
    this.panel1.TabIndex = 0;
    //
    // Form1
    //
    this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
    this.BackColor = System.Drawing.Color.White;
    this.ClientSize = new System.Drawing.Size(416, 413);
    this.Controls.AddRange(new System.Windows.Forms.Control[] {
             this.panel1});
    this.Name = "Form1";
    this.Text = "Form1";
    this.Load += new System.EventHandler(this.Form1_Load);
    this.ResumeLayout(false);
   }
   #endregion

  /// <summary>
  /// The main entry point for the application.
  /// </summary>
   [STAThread]
   static void Main()
   {
    Application.Run(new Form1());
   }

   private void Form1_Load(object sender, System.EventArgs e)
   {
    int a=0;
    int x=0,y=0;
    for (a=0;a<=99;a++)
    {
     n[a] = new Button();
     n[a].BackColor =Color.White;
     n[a].FlatStyle = FlatStyle.Flat;
     n[a].Width = panel1.Width / 10;
     n[a].Left = x * n[a].Width;
     n[a].Height = panel1.Height / 10;
     n[a].Top = y * n[a].Height;
     n[a].Name = "b" + a;
     panel1.Controls.Add(n[a]);
     panel1.Controls[a].MouseDown  += new MouseEventHandler(this.ButtonArray_OnClick);


     x += 1;
     if (x == 10)
     {
      x = 0;
      y += 1;
     }
    }
   }

   private void ButtonArray_OnClick(object sender, MouseEventArgs e)
   {
    MouseEventArgs arg=(MouseEventArgs)e;
         Button b1=(Button)sender;
    if (arg.Button==MouseButtons.Right )
     b1.BackColor=Color.White ;
    else
    {
     //b1.BackColor =Color.White ;
     b1.Image=Image.FromFile(@"C:/Documents and Settings/Administrator/桌面/我.jpg");
    }
   
   }
 }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章