C# 是否从父窗体设置子窗体图像?

C# 是否从父窗体设置子窗体图像?,c#,winforms,C#,Winforms,因此,我正在为一个蹩脚的游戏制作一些成就弹出窗口,因此我制作了一个自定义messagebox表单,并且我已经成功地将弹出窗口picturebox图像设置为本地图像,但我需要使用嵌入资源作为图像的帮助 到目前为止,我使用构造函数来设置图像和字符串,但我不能将它们用于嵌入式图像 父窗体: MessageForm MsgFrm = new MessageForm { AchievementString = "L33t H4x0r - Reach 1337 score.", PictureString

因此,我正在为一个蹩脚的游戏制作一些成就弹出窗口,因此我制作了一个自定义messagebox表单,并且我已经成功地将弹出窗口picturebox图像设置为本地图像,但我需要使用嵌入资源作为图像的帮助

到目前为止,我使用构造函数来设置图像和字符串,但我不能将它们用于嵌入式图像

父窗体:

MessageForm MsgFrm = new MessageForm
{
AchievementString = "L33t H4x0r - Reach 1337 score.",
PictureString = "C:\\Users\\Resources\\H4x0r_50x50.jpg"
};
MsgFrm.Show();
子表单:

public string Achstring { get; set; }
public string Picstring { get; set; }
private void MessageForm_Load(object sender, EventArgs e)
{
achievement_lbl.Text = AchievementString;
achievement_pic.Image = Image.FromFile(PictureString);
}

使用上面的代码,我只能使用本地图像,我的目标是使用嵌入在资源中的图像,但要像上面一样将它们作为参数传递。

您应该将
图像
对象传递给构造函数,或者声明要设置的
图像
属性

public MessageForm(Image img)
{
    InitializeComponent();
    achievement_pic.Image = img;
}

父窗体

子窗体

如果在父窗体中需要更多控件,可以将该控件设置为public或为图像创建一个public属性

public Control PicControl => achievement_pic;

当然,只需给
MessageForm
一个类型为
System.Drawing.Image
的公共属性或构造函数参数。家长可以随意从任何地方加载图像,并将其交给
MessageForm
<代码>消息表单然后将其分配给加载处理程序中的
成就图片
public string Achstring { get; set; }
public Image PicImage { get; set; }

private void MessageForm_Load(object sender, EventArgs e)
{
    achievement_lbl.Text = AchievementString;
    achievement_pic.Image = PicImage
}
public Control PicControl => achievement_pic;