首先 - 我是一名图形设计师 - 而不是程序员:/
我尝试创建简单的应用程序(C#windows窗体应用程序),可以选择添加一些对象(PictureBox)并允许用户在窗体上拖动这些PicturesBox(在添加到窗体后更改它们的位置)。
我可以为一个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 :(得分:0)
如果我理解正确,当您使用在设计时使用设计器创建的PictureBox时,您的代码可以正常使用事件处理程序MouseUp和MouseDown。
您可以将这些相同的事件处理程序添加到实例化时动态创建的控件:
MyPictureBox dynamicPicBox = new MyPictureBox(800, 600, "JustATest");
dynamicPicBox.MouseDown += pictureBox_MouseDown;
这会添加一个映射到方法pictureBox_MouseDown
的事件处理程序private void pictureBox_MouseDown(object sender, MouseEventArgs e)
{
moveDetect = true;
}
由于您的自定义类是从PictureBox派生的,因此它应该识别这种类型的事件处理程序。