从父表单设置子表单图像?

时间:2019-06-04 15:29:53

标签: c# winforms

因此,我正在为某个me脚的游戏制作一些成就弹出窗口,因此我制作了一个自定义消息框表单,并且成功设置了带有本地图像的弹出窗口图片框图像,但是我需要使用嵌入式资源作为图像的帮助。

到目前为止,我已经使用构造函数来设置图像和字符串,但是我无法将其用于嵌入式图像。

父母表格:

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);
}

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

2 个答案:

答案 0 :(得分:0)

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

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

父母表格

MessageForm MsgFrm = new MessageForm
{
    AchievementString = "L33t H4x0r - Reach 1337 score.",
    PictureImg = embeddedPicture
};
MsgFrm.Show();

子窗体

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或为图像创建public属性。

public Control PicControl => achievement_pic;

答案 1 :(得分:0)

使用信息Ed Plunkett给了我,我能够提出解决方案。

首先,必须在其属性中为PictureBox提供public修饰符,

MessageForm MsgFrm = new MessageForm
{
AchievementString = "L33t H4x0r - Reach 1337 score.",
};
MsgFrm.achievement_pic.Image = Properties.Resources.H4x0r_50x50;
MsgFrm.Show();

完成