0

in code below in button click function i want to create a rectangle in the picureBox but when I execute it for first time it draws nothing , but for the second time clicking the rectngle appears , why?

the if statement is true in both time.

    private void btnChamber_Click(object sender, EventArgs e)
    {

        //pictureBox1.Visible = true;

        if (cmbShowResult.SelectedIndex == 0 && ChamberType.SelectedIndex == 0)
        {
            chart1.Visible = false;
            chart2.Visible = false;
            chart3.Visible = false;
            chart4.Visible = false;
            chart5.Visible = false;
            pictureBox1.Visible = true;
            //pictureBox1.Enabled = true;
            Graphics gg = pictureBox1.CreateGraphics();

            //gg.ClipBounds.X = 0;
            //gg.ClipBounds.Y = 0;
            //AddChartStyle(gg);
            chartArea1.X = 0;
            chartArea1.Y = 0;
            chartArea1.Height = 298;
            chartArea1.Width = 450;


            plotArea.X = 40;
            plotArea.Y = 10;
            plotArea.Height = 258;
            plotArea.Width = 400;



            xLimMin = -(float.Parse(txtWidth.Text)) / 2;
            xLimMax = (float.Parse(txtWidth.Text)) / 2;
            yLimMin = -(float.Parse(txtLeft.Text)) * 3f;
            yLimMax = (float.Parse(txtLeft.Text)) * 3f;

            Pen aPen = new Pen(chartBorderColor, 1f);
            SolidBrush aBrush = new SolidBrush(chartBorderColor);
            gg.FillRectangle(aBrush, chartArea1);
            gg.DrawRectangle(aPen, chartArea1);
            aPen = new Pen(plotBorderColor, 1f);
            aBrush = new SolidBrush(plotBackColor);
            gg.FillRectangle(aBrush, plotArea);

            gg.DrawRectangle(aPen, plotArea);
            //AddChartStyle(g);

            //pictureBox1.Visible = true;
            //gg = pictureBox1.CreateGraphics();


            //gg.Flush();
            //gg.Save();
            //pictureBox1.Show();
            //pictureBox1.Invalidate();
            //chart6.Visible = true; 

        }
        pictureBox1.Visible = true;
        //gg.Flush();

    }
4

1 回答 1

2

因为您在 Click 事件上执行此操作。您应该在 Paint 事件中执行此操作。

于 2013-10-29T17:21:42.853 回答