Paintbox内容不会在其他表单中重新绘制

时间:2017-12-11 14:39:09

标签: c# repaint

我很简单想在新表格中创建一个图片框并用它显示图表,但是当我尝试在图片框中绘制一些东西时,没有任何东西出现。

我进行了一些研究,现在我认为当整个表格被重新绘制时,我想在图片框中绘制的矩形不会被重新绘制。

有人可以告诉我如何解决这个问题?

private void chartToolStripMenuItem1_Click(object sender, EventArgs e)
{
    PictureBox pictureBox = new PictureBox();
    Graphics g = pictureBox.CreateGraphics();
    Form chartForm = new Form();

    chartForm.Controls.Add(pictureBox);
    pictureBox.Location = new Point(0, 0);

    chartForm.Show();
    chartForm.DesktopLocation = new Point(this.DesktopLocation.X + this.Size.Width + 10, this.DesktopLocation.Y);
    chartForm.Icon = this.Icon;
    chartForm.Height = this.Size.Height;

    pictureBox.Size = chartForm.Size;

    Pen pen = new Pen(Color.Orange, 10);
    Rectangle rectangle = new Rectangle(new Point(20, 20), new Size(100, 100));
    g.DrawRectangle(pen, rectangle);
}

编辑: 我在函数末尾添加了System.Threading.Thread.Sleep(5000);。 矩形显示在Picturebox中,直到5秒用完。

1 个答案:

答案 0 :(得分:0)

我刚刚使用了像LarsTech这样的错误工具,melya在我的问题的评论中说。使用Paint事件处理程序和交付的Graphics funktion。