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();
}
}
}
我想隔几秒画一个圆,但是为什么一直只显示一个圆? 展开
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();
}
}
}
我想隔几秒画一个圆,但是为什么一直只显示一个圆? 展开
展开全部
起始是每次都执行的,只是画的圈是同一个地方,所以感觉只执行了一次,因为被覆盖掉了
改改这样就能看到效果了,
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();
}
追问
我的坐标是随机的为什么会出现在同一个地方?
追答
你是向随机,但你的写法有问题。我改后的代码出现在随机位置你直接测试
展开全部
这不是废话吗?你那个画圆,每次都是同一种颜色,同样的大小,画在同一个地方,你怎么看得出来变化?你要么每次都偏移一些,要么不同颜色变化,或者你画大一点也行啊。
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的值一直没有变化。唉。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询