0

我有一个带有 GroupBox 的 Windows 窗体应用程序,以及作为背景图像的 PictureBox,以及 PowerPack 中的几个可点击的 OvalShapes。

现在我需要一些 OvalShapes 的标签,所以我在我的 GroupBox 上放了一个 EventHandler,在每次重绘时,应该绘制以下内容

this.groupBoxTest.Paint += new System.Windows.Forms.PaintEventHandler(this.groupBoxVirtualView_Paint);

private void groupBoxVirtualView_Paint(object sender, PaintEventArgs e)
{
    Graphics g = groupBoxVirtualView.CreateGraphics();//e.Graphics;
    g.DrawString("01", new Font("Arial", 12), new SolidBrush(Color.Black), 240, 115);
}

但是绳子01永远不会被拉出来;我所看到的只是处于相同位置的椭圆形 - 出于测试目的禁用它们也不会这样做。

我的弦怎么了?

任何其他方式来标记我的 PoweredOval?

4

2 回答 2

0

你必须使用

groupBoxVirtualView.Invalidate();

重绘groupBox!

于 2013-04-16T14:30:52.523 回答
0

绘制事件应该使用来自发送者的图形对象:

private void groupBoxVirtualView_Paint(object sender, PaintEventArgs e)
{
  Graphics g = e.Graphics;
  g.DrawString("01", new Font("Arial", 12), new SolidBrush(Color.Black), 240, 115);
}

此外,如果 GroupBox 中有一个 PictureBox,该控件将不会显示任何通过该控件的 GroupBox 绘画。它会隐藏它。

于 2013-04-16T14:32:36.757 回答