C# Timer控件里的函数怎么只能执行一次

usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Da... using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
Random r = new Random();
Point p;
public Form1()
{
InitializeComponent();
int x = r.Next(20,300);
p = new Point(x,x);
}

private void draw()
{
Graphics g = this.CreateGraphics();
Pen pen = new Pen(Color.Blue, 10.0f);
SizeF sf;
sf = new SizeF(25.0f, 25.0f);
RectangleF rf;
rf = new RectangleF(p, sf);
g.DrawEllipse(pen, rf);
}

private void timer1_Tick(object sender, EventArgs e)
{
draw();
}
}
}
我想隔几秒画一个圆,但是为什么一直只显示一个圆?
展开
 我来答
万菡uU
2013-06-11 · TA获得超过258个赞
知道小有建树答主
回答量:379
采纳率:66%
帮助的人:380万
展开全部

起始是每次都执行的,只是画的圈是同一个地方,所以感觉只执行了一次,因为被覆盖掉了

改改这样就能看到效果了,

private void draw()
        {
            x = r.Next(20, 300);
            p = new Point(x, x);
            Graphics g = this.CreateGraphics(); 
            Pen pen = new Pen(Color.Blue, 10.0f); 
            SizeF sf;
            sf = new SizeF(25.0f, 25.0f); 
            RectangleF rf;
            rf = new RectangleF(p, sf);
            g.DrawEllipse(pen, rf); 
        }
        
        Random r = new Random(); Point p;
        int x;
        public Form2()
        {
            InitializeComponent();
           
            
        }
追问
我的坐标是随机的为什么会出现在同一个地方?
追答
你是向随机,但你的写法有问题。我改后的代码出现在随机位置你直接测试
谢彬小文
2013-06-11 · 超过10用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:27.6万
展开全部

这不是废话吗?你那个画圆,每次都是同一种颜色,同样的大小,画在同一个地方,你怎么看得出来变化?你要么每次都偏移一些,要么不同颜色变化,或者你画大一点也行啊。

float i=25f;

private void draw()
       {
           Graphics g = this.CreateGraphics();
           Pen pen = new Pen(Color.Blue, 10.0f);
           SizeF sf;

           sf = new SizeF(i, i);

           RectangleF rf;
           rf = new RectangleF(p, sf);
           g.DrawEllipse(pen, rf); 

           i+=1;

      

       }

追问
我的坐标是随机的为什么会出现在同一个地方?
追答
随机是要每次随机的,写在构造函数里,只是在创建窗口的时候随机一下,这样只是每次你运行的时候位置不一样,但整个运行过程中位置是不变的,因为你的p的值一直没有变化。唉。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式