using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace 扫雷小游戏 { public partial class Form1 : Form { public Form1() { InitializeComponent(); //初始化窗口控件 AddButton(); //铺设BUTTON CreateLable(); //铺设lable } private const int Xcount = 20; //设置雷区长度20 private const int Ycount = 20; //设置雷区高度20 private Label[,] labels = new Label[Xcount, Ycount]; //定义二维数组labels private Button[,] buttons = new Button[Xcount, Ycount]; //定义二维数组buttons private void AddButton() //铺设BUTTON,AddButton()方法 { for (int i = 0; i < Xcount; i++) //横坐标循环 { for (int j = 0; j < Ycount; j++) //纵坐标循环 { Button btn = new Button(); //初始化新实例btn btn.Click += new EventHandler(btn_Click); //委托事件btn_Click //btn.Click +=new EventHandler(btn_MouseDown); btn.MouseUp += new MouseEventHandler(btn_MouseUp); //委托事件btn_MouseUp btn.Location = new Point(i * 30, 30 * j); //将btn定位在FROM上 btn.Size = new Size(30, 30); //设置高度和宽度 this.Controls.Add(btn); //将btn添加到控件集合中 //利用Tag使按钮和坐标建立联系 Point pt = new Point(i, j); //初始化新实例pt btn.Tag = pt; //将点的坐标的有序对(数据)赋值给btn.tag buttons[i, j] = btn; //将实例btn赋值给数组 } } } void btn_MouseUp(object sender, MouseEventArgs e) //btn_MouseUp事件 { if (e.Button == MouseButtons.Right) //捕捉鼠标按键 { Button btn = (Button)sender; //将委托传送的实例初始化新实例 if (btn.BackgroundImage == null) //如果btn背景图片是空 { btn.BackgroundImage = Properties.Resources.挖雷工兵; //将图片替换成挖雷工兵 } else //如果btn背景图片不为空 { btn.BackgroundImage = null; //将图片背景替换为空 } } } private Label[] labels2 = new Label[Xcount * Ycount]; //初始化新一维数组label[] int indexOfLable = 0; //定义索引变量indexofLabel private void CreateLable() //铺设Lable { int[] ints = new int[400]; //定义一维数组ints[] Random rd = new Random(); //初始化随机实例 for (int i = 0; i < 400; i++) //400次循环 { ints[i] = rd.Next(1, 400); //得到一个1~400的随机数赋值给ints数组 } for (int i = 0; i < Xcount; i++) //横坐标循环 { for (int j = 0; j < Ycount; j++) //纵坐标循环 { Label lb = new Label(); //初始化新实例lb lb.Location =