读书人

Invalidate() 有关问题

发布时间: 2012-01-26 19:40:46 作者: rapoo

Invalidate() 问题
在button2 事件中,怎么不能用invalidate()啊,用了,在画别的就画不出来了;
请同志们帮帮忙啊,
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Graphics g=e.Graphics;

g.DrawRectangle(Pens.Blue,10,10,40,40);


g.FillRectangle(Brushes.GreenYellow,60,60,100,100);

}

private void button1_Click(object sender, System.EventArgs e)
{
Graphics g1;
g1=this.CreateGraphics();
Point p=new Point(70,70);
g1.FillRectangle(Brushes.Brown,p.X,p.Y,20,20);
}

private void button2_Click(object sender, System.EventArgs e)
{

this.Invalidate();//////???????加上为什么旧不显示下边的内容了啊
Graphics g;
g=this.CreateGraphics();
g.FillRectangle(Brushes.Blue,100,100,20,20);


}

[解决办法]
设置一下全局变量
通过单击事件改变全局变量的值
然后调用this.Invalidate();
具体的自己考虑考虑吧
编程序就得这样,其实画图的具体流程已经很清楚了,以后就得靠自己了
画图无非就是两个事件onpaint() this.Invalidate()
这两个事件就可以做基本的操作
而如何改变界面的图形只有靠改变onpaint事件中全局变量的值

要说的只有这些了
好运

读书人网 >C#

热点推荐