2015-09-02 2 views
-1

Во-первых - я графический дизайнер - не программист:/C событие # мышь для объекта класса

Я пытаюсь создать простую-анкету (C# Windows Form приложений) с возможностью добавления некоторых объектов (PictureBox) и разрешить пользователю перетаскивать эти PicturesBoxes в форме (изменить их позицию после добавления в форму).

я могу сделать это за один PictureBox, но не может добавить функцию для всех Dinamic созданных объектов:/

У меня есть что-то подобное для стандартного Picturebox4

public bool moveDetect = false; 

    private void pictureBox4_MouseDown(object sender, MouseEventArgs e) 
    { 
     moveDetect = true; 
    } 

    private void pictureBox4_MouseUp(object sender, MouseEventArgs e) 
    { 
     if (moveDetect) 
     { 
      Point pozycja = new Point(); 
      this.Cursor = new Cursor(Cursor.Current.Handle); 
      pozycja = this.PointToClient(Cursor.Position); 
      pictureBox4.Location = pozycja; 
     } 
    } 

Кто-нибудь знает любой учебник, показывающий как добавить функцию, как и выше, чтобы мой простой класс «myPictureBox: PictureBox»

Мой класс:

class myPictureBox : PictureBox 
{ 

    public bool moveDetect = false; 

    // constructor 
    public myPictureBox(int w, int h, string name) 
    { 
     this.Width = w; 
     this.Height = h; 
     this.Image = Image.FromFile("../../Resources/" + name + ".png"); 
     Debug.WriteLine("Created ..."); 
    } 

} 

Конструктор работает хорошо и показывает «Создано ...» на выходе. Брус добавить функцию ко всем объектам:/

Спасибо и уважением;)

ответ

0

Если я правильно понимаю, что ваш код хорошо с обработчиков событий MouseUp и MouseDown, когда вы работаете с PictureBoxes, которые вы создаете во время разработки с использованием работ дизайнер.

Вы можете добавить эти же обработчик событий к элементам управления, которые создаются динамически, когда вы их экземпляры:

MyPictureBox dynamicPicBox = new MyPictureBox(800, 600, "JustATest"); 
dynamicPicBox.MouseDown += pictureBox_MouseDown; 

это добавляет обработчик событий, который отображает методу pictureBox_MouseDown

private void pictureBox_MouseDown(object sender, MouseEventArgs e) 
{ 
    moveDetect = true; 
} 

С пользовательского class выводится из PictureBox, он должен распознавать этот тип обработчика событий.

Смежные вопросы