请问,要在if当中画图,咋办,用啥,onpaint吗?
if()
{
画图}
保证,画的图不会消失

解决方案 »

  1.   

    跟在哪画没关系吧,,,主要用到System.Drawing命名空间
      

  2.   

    private void button1_Click(object sender, EventArgs e)
            {
                Rectangle a_snake;
                Graphics  pic = pictureBox1.CreateGraphics();
                Pen pcolor = Pens.Black;
              
              
                int ix = 10;
                int iy = 10;
                for (int j = 1; j < 10; j++)
                {
                    Point i = new Point();
                    i.X = ix;
                    i.Y = iy;
                    int a = 8;
                    a_snake = new Rectangle(i, new Size(a, a));
                    pic.DrawRectangle(pcolor, a_snake);
                    ix = ix + a;
                }画好的图形之所以消失,是因为每当对窗体进行操作的时候,都会触发系统消息,通知程序重画所有必要的窗体,具体的说,消息到达后,各个部件或控件自己画自己的,因为你画的图形不是属于控件本身onPaint()事件里,,所以画完之后,你画的图像就没了。所以,要想保持自绘的图形不会消失,只有自己把图形数据保存下来,并且在pictureBox的画图事件里把画图代码添上,比如private void pictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {
     //画图代码
    }
    才能做到。至于数据怎么保存,看自己的,我一般保存在Arrylist里,方便,还支持自动增减,程序好编 。参考:
    http://blog.sina.com.cn/s/blog_53aaf7a50100i2s9.html