我有一个带有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的其他任何方式?
答案 0 :(得分:0)
你必须使用
groupBoxVirtualView.Invalidate();
重新绘制groupBox!
答案 1 :(得分:0)
paint事件应使用发件人的图形对象:
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绘图。它会隐藏它。