我希望在我的图片框中显示图像,但是当我运行代码时,除了图像没有显示外,其他所有内容都有效。以下是相关代码:
Image[] deadWoman = new Image[5]; //this array will hold the images of bit and pieces of katie
deadWoman[0] = Image.FromFile("F:/Jers Hangman Game/Jers Hangman Game/Resources/katie-hopkins.jpeg");
private void MainPic_Paint(object sender, PaintEventArgs e)
{
Graphics katie = e.Graphics; // creates a graphics object for the picture box
if (numWrongGuesses > 0)
{
e.Graphics.DrawImage(deadWoman[0], 20, 20,60,60);
}
}
答案 0 :(得分:2)
我想图片永远不会重新粉饰,这就是为什么在更新numWrongGuesses
时你不会看到它的原因。您应该Invalidate()
PictureBox
才能看到更新。
我建议设置图像,只需使用Visible = true
和Visible = false
进行显示和隐藏。如果您需要创建一些叠加效果,甚至可以设置BackgroundImage
。
答案 1 :(得分:0)
您不能覆盖Paint
,以便将Image
对象放入PictureBox
。只需使用该属性:
MainPic.Image = deadWoman[0];
只要Image
是资源,您也可以在WinForms设计器中执行此操作。
此外,您可以通过.Visible
属性隐藏和显示图像:
MainPic.Visible = numWrongGuesses > 0;