C# Panneau.Refresh() de ne pas appeler méthode de peinture

Je suis en train d'appel panel1 méthode de peinture pour repeindre le panneau avec une ligne orange (il est engagé avec une ligne bleue).

J'ai essayé invalidate(), update() et refresh(), mais rien ne semble appeler l'événement paint de panel1...

La peinture gestionnaire d'événements ont été ajoutés à la panel1:

this.panel1.Paint += new System.Windows.Forms.PaintEventHandler(this.panel1_Paint);

Quelqu'un peut s'il vous plaît aider?

static class Program
{
    ///<summary>
    ///The main entry point for the application.
    ///</summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        Form1 testForm = new Form1();
        Application.Run(testForm);

        testForm.drawNewLine();
    }
}

public partial class Form1 : Form
{
    bool blueLine = true;
    bool orangeLine = false;

    public Form1()
    {
        InitializeComponent();
    }

    private void panel1_Paint(object sender, PaintEventArgs e)
    {
        Graphics g = e.Graphics;

        if (blueLine == true)
        {
            Pen bluePen = new Pen(Color.Blue, 3);
            g.DrawLine(bluePen, 30, 50, 30, 250);
        }
        else if (orangeLine == true)
        {
            Pen orangePen = new Pen(Color.Orange, 3);
            g.DrawLine(orangePen, 30, 50, 30, 250);
        }

        g.Dispose();
    }

    public void drawNewLine()
    {
        blueLine = false;
        orangeLine = true;
        //panel1.Invalidate();
        //panel1.Update();
        panel1.Refresh();
    }
}

OriginalL'auteur williamwallace | 2012-07-29