2015-06-10 1 views
0

Я работаю над формой окон C#. У меня есть массив изображений, отображаемый в форме. Массив имеет размер 13, и они все бок о бок. Как я могу сделать это так, что, когда я нажимаю на картинку, он перемещается, скажем +20 на y. Мой код для создания иллюстраций. Pb1 и p1 объявлены вышеC# переместить изображение из массива фотошопа вверх, когда вы наведите указатель мыши

void print_Deck(int x, int y, double[] a){ 
     double n; 
     for (int i = 0; i < 13; i++) 
     { 

      pb1[i] = new PictureBox(); 
      // pb1[1].Image = Properties.Resources.img1; 
      pb1[i].Visible = true; 
      pb1[i].Location = new Point(0, 0); 
      this.Size = new Size(800, 600); 
      pb1[i].Size = new Size(46, 65); 
      pb1[i].SizeMode = PictureBoxSizeMode.StretchImage; 
      pb1[i].Location = new Point(x, y); 
      n= a[i]; 
      im = face(n); 
      pb1[i].Image = im; 
      this.Controls.Add(pb1[i]); 
      x = x + 20; 
     } 
    } 

ответ

1

Вы можете попробовать добавить Click мероприятие в PictureBox, то вы можете попробовать этот код на функцию Click.

Вы можете управлять местоположением, используя Top propertyy.

Picturebox.Top -= 20; // move the picture box upward 

или

Picturebox.Top += 20; // move the picture box downward 

или использовать .Location = Новая точка (X, Y)

Picturebox.Location = new Point(Picturebox.Location.X, Picturebox.Location.Y + 20); 

Вот как добавить EventHandler к вашему PictureBox.

Picturebox.Click += new System.EventHandler(this.Picturebox_ClickFunction); 

затем создать fucntion с именем Picturebox_ClickFunction

private void Picturebox_ClickFunction(object sender, EventArgs e) 
{ 
    PictureBox pb1 = (PictureBox)sender; // you need to cast(convert) the sende to a picturebox object so you can access the picturebox properties 
} 

, то вы можете использовать код, я предоставил выше.

+0

Как добавить событие click в массив изображений, когда они сделаны во время выполнения, и их номера будут изменены позже в коде. В настоящее время это всего лишь приблизительный черновик – GK28

+0

, так как ваш графический редактор динамический, вы можете использовать System.EventHandler. – KrLontoc

+0

Не могли бы вы показать мне пример того, как я смогу сделать это с обработчиком событий? Я буду очень благодарен. Спасибо – GK28

0

Вы можете зарегистрировать «Нажмите» событие PictureBox's настроить свойство «MARGIN» на требуемую величину