绘制图形对象的不可见控件

时间:2012-10-05 02:42:16

标签: c# winforms graphics

我有一种方法可以禁用或启用某些自定义控件,然后使用图形对象绘制直线和矩形。

方法的要点:

void MyMethod()

{

//...

mycontrol.enabled = false;

mycontrol.visible = false;

mycontrol.Invalidate();

mycontrol.Update();

GraphicsObject.DrawLines();

//...

}

此方法返回后,屏幕看起来很棒。我有一些矩形和线条,其中曾经是控件。

但是,click事件处理程序返回后(调用上面的方法)。应该是不可见的控件在线条和矩形上绘制(留下那些区域的空白 - 与背景形式相同的颜色)。

有什么方法可以解决这个问题吗?

由于

1 个答案:

答案 0 :(得分:1)

正如我在评论中提到的,如果您在使用OnPaint方法或Paint Event时正在绘制对象,则不会自动重绘您的自定义绘图。根据您所使用的内容,您可以执行类似的操作(我假设您正在使用表单)。

void MyMethod() 
{ 
    //... 
    mycontrol.enabled = false; 
    mycontrol.visible = false; 
    mycontrol.Invalidate(); 
    mycontrol.Update(); 
    this.Invalidate(); 
} 


private void Form1_Paint(object sender, PaintEventArgs e)
{
    //Conditional Logic to determine what you are drawing
    // myPoints is a Point array that you fill elsewhere in your program

    e.Graphics.DrawLines(new Pen(Brushes.Red), myPoints);

}