Bu projemiz de formuzu geri sayımla kapatmayı göreceğiz.
Projemiz için gerekenler;
1 Adet textbox,label,buton ve timer.
Formuzun başlığını silin başlık kısmı boş kalsın tabi siz kafanıza göre bir şey de yazabilirsiniz.
Label ın text ini ben süreyi gir dedim siz kendinize uygun birşey yazabilirsiniz.
Butonun text ini Formu Kapat yazdım.
Aşağıda global bir değişken tanımladım.
int saniye;
Formun load olayına asağıdaki kodları yazdım.
private void Form1_Load(object sender, EventArgs e)
{
button1.Enabled = false;
}
Buton ilk açılışta pasif görünecek.
Butonu aktif etmek için textbox a birşeyler girmeye başlayınca buton aktif olacak.Kod aşağıda;
private void textBox1_TextChanged(object sender, EventArgs e)
{
button1.Enabled = true;
}
Butonun klik olayına aşağıdaki kodları yazdım.
private void button1_Click(object sender, EventArgs e)
{
try
{
timer1.Interval = 1000;
timer1.Enabled = true;
button1.Enabled = false;
}
catch (Exception hata)
{
MessageBox.Show(hata.Message);
}
}
Yukarıda oluşabilecek hataları önlemek için try catch bloğunu kullandım.
Her bir saniye de sürenin eksilmesi gerektiğinden interval değerini
1000 yaptım.Bunun nedeni 1 saniye eksilmesi için 1000 yaptım.
.Enabled=true da butona tıkladığımız da timer çalışmaya başlayacak.Butona tıkladıktan sonra tekrar pasif yaptım.
Artık saniyeleri eksiltmeye başlayabiliriz.
Bunun için timer ın tick olayına aşağıdaki kodları yazdım.
private void timer1_Tick(object sender, EventArgs e)
{
try
{
int zaman;
saniye = int.Parse(textBox1.Text);
textBox1.Enabled = false;
saniye--;
zaman = saniye ;
this.Text ="Formun Kapanmasına " zaman.ToString() " Saniye Kaldı";
textBox1.Text = saniye.ToString();
if (zaman == 0)
{
timer1.Enabled = false;
this.Text = "Form Kapandı";
this.Close();
}
}
catch (Exception hata)
{
MessageBox.Show(hata.Message);
}
}
Şimdi kodların ne işe yaradığını açıklamaya başlayabiliriz.
sayısal değer de bir zaman isminde bir değişken tanımladım.İlk başta
tanımladığım saniye değişkenini textbox ı sayı tipine dönüştürek
eşitledim.
Tekrar dan veri girmeyi engelmek için textbox ı pasif yaptım.
Sonra saniiye değişkenini 1 er (--) eksiltmeye başladım.Sonra zaman
değişkenini saniye değişkenine eşitledim. Sonra bu geri sayım işini
başlığa yazdırdım.Tekrar baştan başlamayı engelemek içiin textbox ı
saniye değişkenine eşitledim.
Şİmdi zaman değişkeni 0 a eşit olduğun da timer ı kapattık sonra formun text değerini değiştirdik ve formu kapattık.
Arkadaşlar hepinize kolay gedik.Bu projemiz de formuzu geri sayımla kapatmayı göreceğiz.
Projemiz için gerekenler;
1 Adet textbox,label,buton ve timer.
Formuzun başlığını silin başlık kısmı boş kalsın tabi siz kafanıza göre bir şey de yazabilirsiniz.
Label ın text ini ben süreyi gir dedim siz kendinize uygun birşey yazabilirsiniz.
Butonun text ini Formu Kapat yazdım.
Aşağıda global bir değişken tanımladım.
int saniye;
Formun load olayına asağıdaki kodları yazdım.
private void Form1_Load(object sender, EventArgs e)
{
button1.Enabled = false;
}
Buton ilk açılışta pasif görünecek.
Butonu aktif etmek için textbox a birşeyler girmeye başlayınca buton aktif olacak.Kod aşağıda;
private void textBox1_TextChanged(object sender, EventArgs e)
{
button1.Enabled = true;
}
Butonun klik olayına aşağıdaki kodları yazdım.
private void button1_Click(object sender, EventArgs e)
{
try
{
timer1.Interval = 1000;
timer1.Enabled = true;
button1.Enabled = false;
}
catch (Exception hata)
{
MessageBox.Show(hata.Message);
}
}
Yukarıda oluşabilecek hataları önlemek için try catch bloğunu kullandım.
Her bir saniye de sürenin eksilmesi gerektiğinden interval değerini 1000 yaptım.Bunun nedeni 1 saniye eksilmesi için 1000 yaptım.
.Enabled=true da butona tıkladığımız da timer çalışmaya başlayacak.Butona tıkladıktan sonra tekrar pasif yaptım.
Artık saniyeleri eksiltmeye başlayabiliriz.
Bunun için timer ın tick olayına aşağıdaki kodları yazdım.
private void timer1_Tick(object sender, EventArgs e)
{
try
{
int zaman;
saniye = int.Parse(textBox1.Text);
textBox1.Enabled = false;
saniye--;
zaman = saniye ;
this.Text ="Formun Kapanmasına "+ zaman.ToString()+" Saniye Kaldı";
textBox1.Text = saniye.ToString();
if (zaman == 0)
{
timer1.Enabled = false;
this.Text = "Form Kapandı";
this.Close();
}
}
catch (Exception hata)
{
MessageBox.Show(hata.Message);
}
}
Şimdi kodların ne işe yaradığını açıklamaya başlayabiliriz.
sayısal değer de bir zaman isminde bir değişken tanımladım.İlk başta tanımladığım saniye değişkenini textbox ı sayı tipine dönüştürek eşitledim.
Tekrar dan veri girmeyi engelmek için textbox ı pasif yaptım.
Sonra saniiye değişkenini 1 er (--) eksiltmeye başladım.Sonra zaman değişkenini saniye değişkenine eşitledim. Sonra bu geri sayım işini başlığa yazdırdım.Tekrar baştan başlamayı engelemek içiin textbox ı saniye değişkenine eşitledim.
Şİmdi zaman değişkeni 0 a eşit olduğun da timer ı kapattık sonra formun text değerini değiştirdik ve formu kapattık.
Arkadaşlar hepinize kolay gedik.