basit bir ornek yaptim.. kendine gore duzenlersin.. Timer i kontrol olarak eklemedim direk kodda kullandim, fark yok pek. Istiyorsan forma bir timer ekle, properties den interval i ayarla ve timer a cift tiklayip koda gir. Benim yazdigim timertickon metodunun icerigini alabilirsin.
2 tane timer yaptim, birisi her 1 saniyede bir daire ciziyor, digeri de ondan 1 saniye sonra daireyi siliyor (daha dogrusu formu yeniliyor diyelim- invalidate timer i).
Anlamadigin yer olursa sorabilirsin, bastice yazdim kodu ki daha iyi anlayabilmen acisindan.
using System;
using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
//Degiskenler
Random random = new Random();
Graphics benimsayfam;
private Timer timer;
private Timer invalidateTimer;
private const int en=65;
private const int boy=75;
//kurucu metod
public Form1()
{
InitializeComponent();
timer =new Timer();
timer.Interval = 1000;
timer.Tick+=TimerOnTick;
invalidateTimer = new Timer();
invalidateTimer.Interval = 1000;
invalidateTimer.Tick += InvalidateTimerOnTick;
}
//form yuklendikten sonra calisan metod
private void Form1_Load(object sender, EventArgs e)
{
timer.Start();
}
//sekli cizdiren metod
private void SekilCiz()
{
benimsayfam = this.CreateGraphics();
SolidBrush boya = new SolidBrush(Color.Black);
int sayi1 = RasgeleSayiUret(false);
int sayi2 = RasgeleSayiUret(true);
benimsayfam.FillEllipse(boya, sayi1,sayi2, en,boy);
invalidateTimer.Start();
}
//rasgele sayi ureten metod
private int RasgeleSayiUret(bool yataymi)
{
int uretilenSayi;
if (yataymi)
uretilenSayi = random.Next(0, this.Width - en - 5);
else
uretilenSayi= random.Next(0, this.Height - boy - 5);
return uretilenSayi;
}
//sekli belli surede cizdiren timer tick metodu
private void TimerOnTick(object sender, EventArgs eventArgs)
{
SekilCiz();
}
//formu yenileyen timer tick metodu
private void InvalidateTimerOnTick(object sender, EventArgs eventArgs)
{
invalidateTimer.Stop();
this.Invalidate();
}
}
}