用锯齿行数组,即可。
using System; class Control
{
  virtual public void SayHi() 
  {
    Console.WriteLine("基类");
  }
}class Button : Control
{
  override public void SayHi() 
  {
    Console.WriteLine("按钮控制");
  }
}class Combo : Control
{
  override public void SayHi()
  {
    Console.WriteLine("下拉框控制");
  }
}class JaggedArrayApp
{
  public static void Main()
  {
  
    Control[][] controls;
    controls = new Control[2][];
    controls[0] = new Control[3];
    for (int i = 0; i < controls[0].Length; i++)
    {
      controls[0][i] = new Button();
    }
    controls[1] = new Control[2];
    for (int i = 0; i < controls[1].Length; i++)
    {
      controls[1][i] = new Combo();
    }
    for (int i = 0; i < controls.Length;i++)
    {
      for (int j=0; j < controls[i].Length;j++)
      {
        Control control = controls[i][j];
        control.SayHi();
      }
    }            Console.ReadLine();
  }
}

解决方案 »

  1.   

    TO:_weiKun_(Virus) 
    我是在画Form时,把一组RadioButton做成数组,是不是我要重新继承RadioButton类?
    应该怎么做?能否给我更详细的代码!?
      

  2.   

    private RadioButton  Rbtn[]; //声明空件数组 private void 函数()

        Rbtn =  new RadioButton[n];
        for ( int i = 0; i < n; i++ )
          {
              Rbtn[n] = new RadioButton();
              Rbtn[n].name = "XXX";
              Form.controls.add(Rbtn[n]);  
          }   }
      

  3.   

    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("f:\\my documents\\my pictures\\elements\\regular_smile.gif");
      }
      
     }
    }

      

  4.   

    控件数组? VB的那种? 其实你自己把控件都Add到一个ArrayList里去不就可以了?