C#绘图问题,关于重绘

1.为什么form_load方法里调用绘图方法draw(a,b,c,d)不起作用,而buttonclick调用绘图方法可以绘图。
2.关于重绘,好多人都说重绘放在onpaint方法里就可以,但是我需要传参数啊,该怎么做,我不想用他的onpaint方法,我自己写了一个draw(a,b,c,d)方法,刷新后绘制的图没有了。
如果能留个QQ就最好了
private void Form1_Load(object sender, EventArgs e)
{
this.drawLine();
}
public void drawLine()
{
Graphics g = this.CreateGraphics();
g.DrawLine(new Pen(Color.Red, 2), new Point(10, 10), new Point(55, 55));
}
private void button1_Click(object sender, EventArgs e)
{
this.drawLine();
}
想实现个这功能,有10个label,点击其中两个能让其连线,如果不采用全局变量能实现么?有代码最好

1、form_load方法里调用绘图方法,绘出图来,然后paint函数重绘,因为没有写,所以就全部图不见了,所以其实就是一闪而过的图。buttonclick调用绘图方法可以绘图,是因为绘出图来,没有执行paint函数重绘
2、关于重绘的问题,我以为也试过很多种方法,最后到目前为止,也只是能在paint函数里实现。
如果你有兴趣,可以在百度给我留言,加个百度HI或QQ详聊。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-30
1.窗口出来一刷新就刷没了呗
2.在OnPaint方法或者Paint事件里调用你的draw(a,b,c,d)……
第2个回答  2011-03-30
你可以试试Timer控件,每隔半秒刷新一次
this.timer1.Interval = 500;
private void timer1_Tick(object sender, EventArgs e)
{
this.drawLine();
}
第3个回答  2011-03-31
貌似必须用Paint 或 OnPaint事件,我也是这个问题,但凡用CreateGraphics的形式就会出现你的问题。困扰。
第4个回答  2011-03-30
别累了、、、、

C#绘图问题,关于重绘
1、form_load方法里调用绘图方法,绘出图来,然后paint函数重绘,因为没有写,所以就全部图不见了,所以其实就是一闪而过的图。buttonclick调用绘图方法可以绘图,是因为绘出图来,没有执行paint函数重绘 2、关于重绘的问题,我以为也试过很多种方法,最后到目前为止,也只是能在paint函数里实现。如果你...

C#中图形的重绘问题
如果你是一启动就显示你画的那些图形就可以通过重绘这个方法:protected override void OnPaint(PaintEventArgs e){ base.OnPaint(e);\/\/在此添加你绘图的那些代码;} 如果你是通过按了Button再显示画图的,那么你可以在你绘图代码的最后加上这句代码:this.Update();试试看....

C#中自绘图形的重绘
简单的可以在窗体的Activated事件中,重新调用绘图函数。如果参数很多,太麻烦的话,可以这样。绘图的时候,把图形绘制到picture中,把picture放在窗体上,这样图形始终在内存中保留。无论如何切换窗口,图形都不会消失。具体绘图方法:引用如下命名空间:using System.Drawing;using System.Drawing.Imaging;申明...

C# 画图 窗体重绘
设一个bool型的全局变量.比如 bool flag = false;onpaint里用 if(flag){ \/\/drawpic } 按钮事件里 flag = true;想让图片消失就把flag改成false即可

c#重绘复选框checkBox的问题
那个框框大小不能改变,但是框框和显示的文字 整体大小是可以调的,改变属性borderwidth值就好了。

关于C#的问题 那个picturebox里面的paint函数 第一次绘图成功 然后我单 ...
Paint是重绘事件的处理函数只能在Form1_Load触发后才能触发或者是在AutoSizeChanged 后自动触发~你要现在其他地方触发只能手动执行重绘绑定的处理函数了

在C#中窗体中添加一个PictureBox控件的重绘问题
我没有遇到这样的情况,可能是机器运行有点慢吧。一般情况下都会自动重绘的,如果不自动重绘的话,你可以让它重绘。调用菜单栏之后,调用PictureBox.Refresh();

C#重绘问题Form1_Paint方法
原因:1:电脑性能不太好,处理速度慢 2:界面中控件太多,重绘速度慢 毕竟C# 是托管语言,需要CLR,所以速度肯定比不上以前的C++ 如果真的要弄,需要调用API了.闪一下就闪一下吧.

c#如何阻止重绘
窗体启动、最小化、最大化等都会导致重绘,即执行Paint事件,这是无法阻止的,但是你可以在Paint事件里if 一下

C#GDI+重绘后的图形怎么选中,而且可以实现拖动,改变大小等操作,求高手...
如果是的,设置一个标志位,当拖动鼠标的时候,引发MouseMove事件,事件参数也包含一个坐标的参数,根据这个参数你自己写代码更改图形的各个点的坐标,鼠标释放的时候引发MouseUp事件,这个时候你释放标志位!还有设置控件的DoubleBuffered的属性为true,这样在重绘图形时不会出现闪烁 ...

相似回答