我正在制作纸牌游戏,我正在尝试使用绘画事件处理程序将卡片绘制到表单上。我注意到如果我用相同的代码覆盖OnPaint,虽然在激活表单时会立即绘制卡片,但是卡片被正确绘制。但是,当我将相同的代码放入绘制事件处理程序时,该卡只会在表单上绘制一半。此外,如果我'隐藏()'表单,然后'显示()'和'激活()'它从它的父表单,当表单再次出现时,卡正确显示:
private void PaintCard(object sender, PaintEventArgs e)
{
if (BegunPlay)
{
Region Card = new Region(Animation.CardShape(new Point(550, 300)));
e.Graphics.FillRegion(Brushes.FloralWhite, Card);
}
}
那是无法完全绘制卡片的paint事件处理程序: 图片: half card
以下是按下“后退”按钮后表单的外观,该按钮使用“隐藏()”隐藏表单,并按下父表单上的按钮以“显示()”和“激活()”此表单: 图片: full card
我环顾网络,但我似乎找不到有同样问题的人。有人可以建议尝试一下吗?