Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Передвижение Picturebox-ов по клику


Автор: 10vital08 2.2.2017, 18:23
Дорогие друзья, сейчас я имею 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();
        }
 
    } 
}



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)