C# 每次未绘制到图片框的线条

C# 每次未绘制到图片框的线条,c#,graphics,drawing,picturebox,pen,C#,Graphics,Drawing,Picturebox,Pen,当我的代码只运行大约1/3的时间时,它实际上会正确地绘制,其余时间它不会绘制一些线条 Pen pen = new Pen(Color.Black); Graphics graphics = MainFrm.HangmanImage.CreateGraphics(); switch (NoOfGuesses) { case 1://Bottom left leg graphics.DrawLin

当我的代码只运行大约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();

没有足够的信息来确定,但是,我首先要确保变量'Noofguesss'始终是1-7之间的值,如果值为0或8,则结果将不起任何作用。其次,我会添加一个“默认”大小写,以防您的“noofguesss”因任何原因超出该范围,并让它画一条线。

我通过在表单的绘制事件上运行此代码来修复此问题,似乎每当它重新绘制表单时,它都会忘记它。

或者让它在
默认值上打印一些警告消息。一行不会传递那么多信息,可能会融入应用程序。Noofguesss始终在这一范围内。另外,如果这是一个这样的错误,那么它不会在某些时候划清界限,而不是在其他时间。