帮我看看这里哪里不对,那个timer.interval设置为多少合适?//开始
        private void button1_Click(object sender, EventArgs e)        {
            timer1.Enabled = true;
        }
//暂停
        private void button2_Click(object sender, EventArgs e)        {
            timer1.Enabled =false;
        }        private void timer1_Tick(object sender, EventArgs e)        {
            r = Double.Parse(textBox1.Text);
            h = Double.Parse(textBox2.Text);
            w = Double.Parse(textBox3.Text);
            δ0 = Double.Parse(textBox4.Text); δ0 = δ0 / 180 * pi;
            δ1 = Double.Parse(textBox5.Text); δ1 = δ1 / 180 * pi;
            δ2 = Double.Parse(textBox6.Text); δ2 = δ2 / 180 * pi;
            δ3 = Double.Parse(textBox7.Text); δ3 = δ3 / 180 * pi;
            //定义画笔
              Graphics g1 = this.pictureBox1.CreateGraphics();
            Graphics g2 = this.pictureBox2.CreateGraphics();
            Graphics g3 = this.pictureBox3.CreateGraphics();
            Graphics g4 = this.pictureBox4.CreateGraphics();
            Pen p = new Pen(Color.Black, 1);
            Pen p1 = new Pen(Color.Black, 2);            //timer控件
            timer1.Interval = 5000;            int angle=1;
            angle = angle + 1;
            if (angle >= 360)
                angle = 1;
            for (i = 0; i <= 360; i++)
            {
                //推程
                if ((i+angle) * pi / 180 < δ0)
                {
                    if ("(1)一次多项式" == comboBox1.Text)
                        yc((i + angle) * pi / 180);
                    else if ("(2)二次多项式" == comboBox1.Text)
                        ec((i + angle) * pi / 180);
                    else if ("(3)五次多项式" == comboBox1.Text)
                        wc((i + angle) * pi / 180);
                    else if ("(4)余弦加速度" == comboBox1.Text)
                        yx((i + angle) * pi / 180);
                    else if ("(5)正弦加速度" == comboBox1.Text)
                        zx((i + angle) * pi / 180);
                    x1 = Convert.ToInt32((sva[0] + r) * Math.Sin((i + angle) * pi / 180));
                    y1 = Convert.ToInt32((sva[0] + r) * Math.Cos((i + angle) * pi / 180));
                    g1.DrawEllipse(p, 244 + x1, 160 - y1, 1, 1);
                    g2.DrawEllipse(p, Convert.ToInt32((i + angle) / 360 * 157 + 5), Convert.ToInt32(133 - sva[0] * 100 / h), 1, 1);
                    g3.DrawEllipse(p, Convert.ToInt32((i + angle) / 360 * 157 + 5), Convert.ToInt32(83 - sva[1] * 50 / (pi * h * w)), 1, 1);
                    g4.DrawEllipse(p, Convert.ToInt32((i + angle) / 360 * 157 + 5), Convert.ToInt32(83 - sva[2] * 50 / (pi * pi * h * w * w)), 1, 1);
                }
                //远休止
                else if (δ0 <= ((i + angle) / 180 * pi) && ((i + angle) / 180 * pi) < (δ1 + δ0))
                {
                    x1 = Convert.ToInt32((h + r) * Math.Sin((i + angle) / 180 * pi));
                    y1 = Convert.ToInt32((h + r) * Math.Cos((i + angle) / 180 * pi));
                    g1.DrawEllipse(p, 244 + x1, 160 - y1, 1, 1);
                    g2.DrawEllipse(p, Convert.ToInt32((i + angle) / 360 * 157 + 5), Convert.ToInt32(133 - sva[0] * 100 / h), 1, 1);
                    g3.DrawEllipse(p, Convert.ToInt32((i + angle) / 360 * 157 + 5), Convert.ToInt32(83 - sva[1] * 50 / (pi * h * w)), 1, 1);
                    g4.DrawEllipse(p, Convert.ToInt32((i + angle) / 360 * 157 + 5), Convert.ToInt32(83 - sva[2] * 50 / (pi * pi * h * w * w)), 1, 1);
                }
                //回程
                else if ((δ0 + δ1) <= ((i + angle) / 180 * pi) && ((i + angle) / 180 * pi) < (δ0 + δ1 + δ2))
                {
                    if ("(1)一次多项式" == comboBox2.Text)
                        hcyc((i + angle) * pi / 180 - δ0 - δ1);
                    else if ("(2)二次多项式" == comboBox2.Text)
                        hcec((i + angle) * pi / 180 - δ0 - δ1);
                    else if ("(3)五次多项式" == comboBox2.Text)
                        hcwc((i + angle) * pi / 180 - δ0 - δ1);
                    else if ("(4)余弦加速度" == comboBox2.Text)
                        hcyx((i + angle) * pi / 180 - δ0 - δ1);
                    else if ("(5)正弦加速度" == comboBox2.Text)
                        hczx((i + angle) * pi / 180 - δ0 - δ1);                    x1 = Convert.ToInt32((sva[0] + r) * Math.Sin((i + angle) * pi / 180));
                    y1 = Convert.ToInt32((sva[0] + r) * Math.Cos((i + angle) * pi / 180));
                    g1.DrawEllipse(p, 244 + x1, 160 - y1, 1, 1);
                    g2.DrawEllipse(p, Convert.ToInt32((i + angle) / 360 * 157 + 5), Convert.ToInt32(133 - sva[0] * 100 / h), 1, 1);
                    g3.DrawEllipse(p, Convert.ToInt32((i + angle) / 360 * 157 + 5), Convert.ToInt32(83 - sva[1] * 50 / (pi * h * w)), 1, 1);
                    g4.DrawEllipse(p, Convert.ToInt32((i + angle) / 360 * 157 + 5), Convert.ToInt32(83 - sva[2] * 50 / (pi * pi * h * w * w)), 1, 1);
                }
                //近休止
                else
                {
                    x1 = Convert.ToInt32(r * Math.Sin((i + angle) * pi / 180));
                    y1 = Convert.ToInt32(r * Math.Cos((i + angle) * pi / 180));
                    g1.DrawEllipse(p, 244 + x1, 160 - y1, 1, 1);
                    g2.DrawEllipse(p, Convert.ToInt32((i + angle) / 360 * 157 + 5), Convert.ToInt32(133 - sva[0] * 100 / h), 1, 1);
                    g3.DrawEllipse(p, Convert.ToInt32((i + angle) / 360 * 157 + 5), Convert.ToInt32(83 - sva[1] * 50 / (pi * h * w)), 1, 1);
                    g4.DrawEllipse(p, Convert.ToInt32((i + angle) / 360 * 157 + 5), Convert.ToInt32(83 - sva[2] * 50 / (pi * pi * h * w * w)), 1, 1);
                }
            }        }
C#timer

解决方案 »

  1.   

    这个格式的应该可以的吧?即使button1,button2,然后是timer1这个,为什么就是什么都出现不了,原来不加timer的时候就可以,新手郁闷那!
      

  2.   

    你是否对timer1的Tick进行了注册了?即你是否把你timer1_Tick处理程序绑定到Tick事件中的?,具体看看官网的演示例子:http://msdn.microsoft.com/zh-cn/library/vstudio/system.windows.forms.timer.aspx
      

  3.   

    1.在timer的Tick事件处理程序中只计算、改变变量值  然后调用pictureBox1.Invalidate让pictureBox1重绘 不要画图
    2.将画图部分放到 pictureBox1的Paint事件处理程序中将两个逻辑分清楚更好