Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在运行时将控件添加到c#用户控件并能够对其进行管理_C#_User Interface_User Controls - Fatal编程技术网

在运行时将控件添加到c#用户控件并能够对其进行管理

在运行时将控件添加到c#用户控件并能够对其进行管理,c#,user-interface,user-controls,C#,User Interface,User Controls,(一) 我开发了一个c#用户控件。 在那个控件中,我有一个按钮。当用户在运行时单击按钮时,将在上一个pictureBox旁边创建一个新控件(例如pictureBox) 我是这样做的: PictureBox pb = new PictureBox(); pb.Location = new Point(oldPb.X, oldPb.Y + 100); pb.Size = oldPb.Size; Controls.Add(pb); 问题是,我希望能够管理所有创建的项。 例如,我想索引PictureB

(一) 我开发了一个c#用户控件。 在那个控件中,我有一个按钮。当用户在运行时单击按钮时,将在上一个pictureBox旁边创建一个新控件(例如pictureBox)

我是这样做的:

PictureBox pb = new PictureBox();
pb.Location = new Point(oldPb.X, oldPb.Y + 100);
pb.Size = oldPb.Size;
Controls.Add(pb);
问题是,我希望能够管理所有创建的项。 例如,我想索引PictureBox,然后从用户那里获得一个数字,并更改想要的photoBox的照片。 例如:

photoBox3.Image = .......
我怎么做

(二) 我希望能够识别用户何时单击其中一个相框,并对所选的相框执行操作。 我该怎么做


谢谢

您可以使用PictureBox的
标记
属性来存储某种索引

然后,您可以让所有PictureBox响应单击事件:

pb.Click+=neweventhandler(picturebox\u Click)

检查一下标签

private void picturebox_Click(object sender, EventArgs e)
{
   PictureBox pb = sender as PictureBox;
   if (pb != null)
   {
     string s = pb.Tag
   }
}
void pb_Click(object sender, EventArgs e)
{
    PictureBox pb = sender as PictureBox;
    //Do work
}
private void picturebox_Click(object sender, EventArgs e)
{
   PictureBox pb = sender as PictureBox;
   if (pb != null)
   {
     string s = pb.Tag
   }
}