我用下面的代码在一个图上画Icon图标,但是我想实现每隔一段时间Icon图标就会向一定的方向进行移动。我现在的办法是重画,但是这样就会出像很多的Icon,请问用什么方法可以实现Icon的移动呢?
private void PaintOurs()
{
Icon Resicon = new Icon(Application.StartupPath+"\\icon1.ico");
Graphics g = Graphics.FromImage(this.pictureBox1.Image);
for(int i=0; i<45; i++)
{
int tx=ss.Nodelist[i].node_x;
int ty=ss.Nodelist[i].node_y;
if(this.checkBoxScale.Checked)
{
int nn=distance/10;
Pen pen = new Pen(Color.Red);
g.DrawEllipse(pen,tx-nn/2,ty-nn/2,nn,nn);
}
g.DrawIcon(Resicon,tx-10,ty-10);
PointF point = new PointF((tx-13),(ty+10));
g.DrawString(ss.Nodelist[i].node_name,new Font("Times New Roman",10),new SolidBrush(Color.Black),point);
}
}

解决方案 »

  1.   

    前面加一句
    g.Clear(Color.White);
      

  2.   

    首先你得到点时不对,因为你得绘图上下文是从image获得的,所以坐标是image的坐标而不是窗口的你的Graphics 最好用FromHwnd(this.handler);
      

  3.   

    Icon图标是一个了,但是背景图却变成白色的了。
      

  4.   

    TO:hdt(倦怠)
    这个没有关系吧.
      

  5.   

    忘了说了,我是在image上画Icon的。
      

  6.   

    呵呵,我的意思就是连同你的背景重画一遍就是了.
    g.Clear(Color.White);它的意思也就是每次涂白而已.