110,545
社区成员
发帖
与我相关
我的任务
分享
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 saolei
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
List<Label> lblList = new List<Label>(81);
List<Button> btnList = new List<Button>(81);
private void Form1_Load(object sender, EventArgs e)
{
//初始化
//生成标签并添加到集合
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 9; j++)
{
Label l1 = new Label();
l1.Size = new Size(20, 20);
l1.Name = "lbl" + i + j;
l1.Text = "空";
Point p1 = new Point(20 * i, 20 * j);
l1.Location = p1;
l1.Visible = false;
//l1.MouseClick += new MouseEventHandler(btnLei_MouseClick);
lblList.Add(l1);
Controls.Add(l1);
}
}
//用按钮挡住雷
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 9; j++)
{
Button b1 = new Button();
b1.Size = new Size(20, 20);
b1.Name = "button" + i + j;
Point p1 = new Point(20 * i, 20 * j);
b1.Location = p1;
b1.MouseClick += new MouseEventHandler(btnLei_MouseClick);
btnList.Add(b1);
Controls.Add(b1);
}
}
//将10个雷随机放入雷区
for (int i = 0; i < 10; i++)
{
Random rd = new Random();
int k = rd.Next(0, 80);
lblList[k].Visible = true;
lblList[k].Text = "雷";
btnList[k].Visible = false;
}
}
private void btnLei_MouseClick(object sender, EventArgs e)
{
}
}
}
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;
using System.Threading;
namespace SaoLei
{
public partial class Form1 : Form
{
private const int ControlsCount = 9;
private PictureBox[,] pict = new PictureBox[ControlsCount,ControlsCount];
private MyButton[,] btn = new MyButton[ControlsCount, ControlsCount];
private int LocalLift = 10;
private int LocalTop = 10;
private int ControlsSizeX = 20;
private int ControlsSizeY = 20;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
loadControls();
}
private void loadControls()
{
for (int i = 0; i < ControlsCount; i++)
{
for (int j = 0; j < ControlsCount; j++)
{
pict[i, j] = new PictureBox();
pict[i,j].Location = new Point(LocalLift + i * ControlsSizeX + 1, LocalTop + j * ControlsSizeY);
pict[i, j].Width = ControlsSizeX;
pict[i, j].Height = ControlsSizeY;
pict[i, j].Visible = false;
pict[i, j].SizeMode = PictureBoxSizeMode.StretchImage;
this.Controls.Add(pict[i,j]);
btn[i, j] = new MyButton(pict[i, j]);
btn[i, j].Location = new Point(LocalLift + i * ControlsSizeX + 1, LocalTop + j * ControlsSizeY);
btn[i, j].Width = ControlsSizeX;
btn[i, j].Height = ControlsSizeY;
this.Controls.Add(btn[i, j]);
btn[i, j].BringToFront();
}
}
set雷();
}
private void set雷()
{
for (int i = 0; i < ControlsCount; i++)
{
Random rd = new Random(10);
long tick = DateTime.Now.Ticks;
Random ran = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 32));
pict[ran.Next(ControlsCount), i].Image = Image.FromFile(string.Format("{0}\\Image\\雷1.jpg", Application.StartupPath));
Thread.Sleep(10);
}
}
}
public class MyButton : Button
{
public MyButton(PictureBox pictureBox)
{
this.Click += (s, e) => { this.Visible = false; };
pictureBox.Visible = true;
}
}
}
public class MyButton : Button
{
public MyButton(int i)
{
this.Click += (s, e) => { this.Visible = false; };
}
}
请:
1.把上面的代码加入到你的代码中。
2.把我给你的代码中的 Button 全部改成 MyButton
private int ControlsCount = 9;
private Button[,] btn = new Button[ControlsCount, ControlsCount];
private Label[,] lab = new Label[ControlsCount, ControlsCount];
private int LocalLift = 10;//你自己改之
private int LocalTop = 10;//你自己改之
private int ControlsSizeX = 20;//你自己改之
private int ControlsSizeY = 20;//你自己改之
private Timer timer = new Timer();
private void loadControls()
{
for(int i=0;i<ControlsCount;i++)
{
for(int j=0;j<ControlsCount;j++)
{
lab[i, j] = new Label();
lab[i, j].Location = new Point(LocalLift + i*ControlsSizeX, LocalTop + i*ControlsSizeY);//你自己改之
lab[i, j].Text = "";
btn[i, j] = new Button();
btn[i, j].Location = new Point(LocalLift + i*ControlsSizeX, LocalTop + i*ControlsSizeY);//你自己改之
btn[i, j].Width = ControlsSizeX;
btn[i, j].Height = ControlsSizeY;
btn[i, j].Tag = 0;//赋初值
this.Controls.Add(lab[i, j]);
this.Controls.Add(btn[i, j]);
btn[i, j].Click += (s, e) =>{btn[i, j].Visible = false;};//点该按钮时该按钮隐藏,露出 label.txt, 这样能保证每一个按钮都是可点击的
}
}
set雷();
}
private void set雷()
{
for(int i=0;i<ControlsCount;i++)
{
for(int j=0;j<ControlsCount;j++)
{
int iSeed = 10;
Random rd = new Random(10);
long tick = DateTime.Now.Ticks;
Random ran = new Random((int)(tick & 0xffffffffL) | (int) (tick >> 32));
lab[ran.Next(ControlsCount), j].Text = "雷";
}
}
}
以上代码没试过。。。
Random rd = new Random();
int k1 = rd.Next(0, 80);
int k2 = rd.Next(0, 80);
int k3 = rd.Next(0, 80);
int k4 = rd.Next(0, 80);
int k5 = rd.Next(0, 80);
int k6 = rd.Next(0, 80);
int k7 = rd.Next(0, 80);
int k8 = rd.Next(0, 80);
int k9 = rd.Next(0, 80);
int k10 = rd.Next(0, 80);
lblList[k1].Text = "*";
lblList[k1].BackColor = Color.Red;
lblList[k2].Text = "*";
lblList[k2].BackColor = Color.Red;
lblList[k3].Text = "*";
lblList[k3].BackColor = Color.Red;
lblList[k4].Text = "*";
lblList[k4].BackColor = Color.Red;
lblList[k5].Text = "*";
lblList[k5].BackColor = Color.Red;
lblList[k6].Text = "*";
lblList[k6].BackColor = Color.Red;
lblList[k7].Text = "*";
lblList[k7].BackColor = Color.Red;
lblList[k8].Text = "*";
lblList[k8].BackColor = Color.Red;
lblList[k9].Text = "*";
lblList[k9].BackColor = Color.Red;
lblList[k10].Text = "*";
lblList[k10].BackColor = Color.Red;
Random rd = new Random();
int k = rd.Next(0, 80);
你的这个代码要是运气差,可能生成的是同一个K,然后一直改变的是一个Lable。这个随机分配是不合理的。