线条不是每次都绘制到图片框中
本文关键字:绘制 | 更新日期: 2023-09-27 18:22:51
当我的代码只运行了大约1/3的时间时,它会正确地绘制,其余的时间则不会绘制一些线条。
Pen pen = new Pen(Color.Black);
Graphics graphics = MainFrm.HangmanImage.CreateGraphics();
switch (NoOfGuesses)
{
case 1://Bottom left leg
graphics.DrawLine(pen, 15, 60, 40, 60);
break;
case 2://Bottom right leg
graphics.DrawLine(pen, 40, 60, 55, 60);
break;
case 3://Middle stock
graphics.DrawLine(pen, 34, 20, 34, 60);
break;
case 4: //Top line
graphics.DrawLine(pen, 34, 20, 55, 20);
break;
case 5: //Rope
graphics.DrawLine(pen, 55, 20, 55, 25);
break;
case 6: //Head
graphics.DrawEllipse(pen, (new Rectangle { X=52, Y=25, Height=5, Width=5 }));
break;
case 7: //Body
graphics.DrawLine(pen, 55, 30, 55, 35);
break;
}
pen.Dispose();
graphics.Dispose();
没有足够的信息可以确定,但是,我首先要确保变量"NoOfGuesses"始终是1-7之间的值,0或8的值最终不会起任何作用。其次,我会添加一个"默认"情况,以防您的"NoOfGuesses"出于任何原因超出该范围,并让它画一条线。
我通过在表单的paint事件上运行这段代码来解决这个问题,它似乎在重新绘制表单时忘记了这一点。