Дорогие друзья, сейчас я имею 36 динамически созданных picturebox-в (в квадрате 6x6). Подскажите, как мне сделать обработчик событий для любого picturebox-а, чтобы при нажатии на него, передвигались его соседние элементы вокруг него?
Код | namespace PuzzleGame { public partial class Form1 : Form { public class ItemGr { public PictureBox pic { set; get; } public Image Img { set; get; } public Point Pos { set; get; } } ItemGr[,] Imag = new ItemGr[6, 6]; public Form1() { Bitmap B = new Bitmap(global::PuzzleGame.Properties.Resources.back); this.BackgroundImage = B; for (int i = 0; i < 6; i++) { for (int j = 0; j < 6;j++ ) { Imag[i, j] = new ItemGr(); Imag[i, j].pic = new PictureBox(); Imag[i, j].Pos = new Point(210 + i * 100, 65 + j * 100); Imag[i, j].pic.Width = 96; Imag[i, j].pic.Height = 96; if ((i < 1 & j < 3) | (i < 3 & j < 1) | (( i == 2 & (j == 2 | j == 3 | j == 4))) | (i == 3 & j == 2)) { Imag[i, j].pic.Image = global::PuzzleGame.Properties.Resources._1; } if ((i < 1 & j > 2) | (i < 4 & j > 4) | (i == 1 & j == 4) | ((i == 2 | i ==3) & j ==1 )) { Imag[i, j].pic.Image = global::PuzzleGame.Properties.Resources._3; } if ((i > 2 & j < 1) | (i > 3 & j < 3 ) | ( i==1 & (j ==2 | j == 3) )) { Imag[i, j].pic.Image = global::PuzzleGame.Properties.Resources._2; } if ( (i == 1 & j == 1) | (i > 3 & j > 2) | (i == 3 & (j == 3 | j == 4))) { Imag[i, j].pic.Image = global::PuzzleGame.Properties.Resources._4; } Imag[i, j].pic.Location = Imag[i, j].Pos; Imag[i, j].pic.BackColor = Color.Transparent; this.Controls.Add(Imag[i, j].pic); } } InitializeComponent(); } } }
|
|