在 usecontrol 中显示表单中的图片框

时间:2021-04-25 12:32:16

标签: c# user-controls picturebox

我需要在用户控件中显示主窗体中形成的图片框,还要保存对该图片框的订阅。 在这个类中,我填写了字段,然后使用 foreach 将图片框传递给用户控件

public class UserCtr
{
    public event Action<List<Users>> ClickPicture;
    public event Action<List<Users>, Group> DoubleClickPicture;
    public Group group { get; set; }
    public PictureBox picture { get; set; }
    public List<Users> users { get; set; }

    public UserCtr(Group group, PictureBox picture, List<Users> users)
    {
        this.group = group;
        this.picture = picture;
        this.users = users;
        this.picture.Click += PictureClick;
        this.picture.MouseDoubleClick += PictureDoubleClick;
    }
    private void PictureClick(object s, EventArgs e)
    {
        ClickPicture(users);
    }
    private void PictureDoubleClick(object s, EventArgs e)
    {
        DoubleClickPicture(users, group);
    }

}

foreach 循环

foreach (var item in groups.users)
        {
            item.picture.Image = yellow;
            panel.Controls.Add(new UserControl1(item.picture)
            {
                Text = item.user.Name,
                //pb = item.picture
        });
        }

我的用户控件

   public partial class UserControl1 : UserControl
{
    public UserControl1(PictureBox pic)
    {

        InitializeComponent();
        Load += (s, e) => pictureBox1 = pic;
        Invalidate();
    }
    protected override void OnTextChanged(EventArgs e)
    {
        base.OnTextChanged(e);
        label1.Text = Text;
    }

}

}

标签已填,图片框为空

0 个答案:

没有答案