Tình hình em đang làm đồ án cuối kỳ game Trúc Xanh. Trức mắt em tạo được mảng button động với gắn mỗi button 1 sự kiện click rồi. Nhưng trong hàm click làm sao để em xử lý 2 click 1 cái click trước, 1 cái click sau trong ùng 1 method vậy mọi người.
Tiếp đó là random ảnh từ 1 thư mục vào các mảng button này. Em chỉ biết random 1 lần, còn nếu random lại thì mấy cái hình nó nhảy lộn xộn, tức là hình ban đầu lại random ra hình khác.
Em cảm ơn!
//Hàm create Button
private void dễToolStripMenuItem_Click(object sender, EventArgs e)
{
soTX = 4;
bt = new Button[soTX][];
for(int i=0; i<soTX; i++)
{
bt[i] = new Button[soTX];
}
int top = 50; //Giá trị Location Top
for (int i = 0; i < soTX; i++)
{
int Left = 50; //Giá trị Location Left
for (int j = 0; j < soTX; j++)
{
bt[i][j] = new Button();
//Thêm cài đặt cho button
bt[i][j].Name = "Button" + i + " " + j;
bt[i][j].Size = new Size(150, 150);
bt[i][j].Left += Left ;
bt[i][j].Top = top;
bt[i][j].Image = Image.FromFile("background.jpg");
//Tạo sự kiên cho button và gán tới hàm sử lý sự kiện
bt[i][j].Click += new EventHandler(button_Click);
this.Controls.Add(bt[i][j]);
Left += 150;
}
top += 150;
}
}
// Hàm sự kiện button
private void button_Click(object sender, EventArgs e)
{
int id = rd.Next(0, 7);
Button TX = ((Button)sender);
TX.Image = Image.FromFile("matching" + id + ".jpg");
TX.Enabled = false;
ButtonSame();
}
//Hàm kiểm tra button cùng hình
public void ButtonSame()
{
for (int i = 0; i < soTX*soTX -1 ; i++)
{
for (int j = i+1; j < soTX*soTX; j++)
{
if (bt[i%soTX][i/soTX].Enabled == false && bt[j%soTX][j/soTX].Enabled == false)
{
//Nếu 2 button đều đã mở thì kiểm tra tiếp xem tag của 2 button có bằng nhau không, nếu bằng nhau thì xóa button.
if (bt[i % soTX][i / soTX].Tag.ToString() == bt[j % soTX][j / soTX].Tag.ToString())
{
System.Threading.Thread.Sleep(500);
bt[i % soTX][i / soTX].Enabled = true;
bt[j % soTX][j / soTX].Enabled = true;
bt[i % soTX][i / soTX].Visible = false;
bt[j % soTX][j / soTX].Visible = false;
}
else
{
System.Threading.Thread.Sleep(500);
bt[i % soTX][i / soTX].Enabled = true;
bt[j % soTX][j / soTX].Enabled = true;
bt[i % soTX][i / soTX].Image = Image.FromFile("background.jpg");
bt[j % soTX][j / soTX].Image = Image.FromFile("background.jpg");
}
}
}
}
}


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?