[英]Creating Rectangle in PictureBox using PictureBox.CreateGraphics
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? 在按钮点击功能下面的代码我想在picureBox中创建一个矩形,但是当我第一次执行它时它什么都没画,但第二次点击矩形出现,为什么?
the if statement is true in both time. if语句在两个时间都是真的。
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();
}
Because you're doing this on the Click event. 因为您在Click事件上执行此操作。 You should do it on the Paint event.
您应该在Paint事件上执行此操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.