Bu konuyu anlatırken küçük bir buton yakalama oyunu ile örneklemek istiyorum.
Yeni form yarattıktan sonra forma bir de buton ekliyoruz.
Ve butonun olaylarına geçerek Mouse Enter olay(event)ına şu kodları giriyoruz :
Random Rastgele = new Random();
button1.Left = Rastgele.Next(1, 501);
button1.Top = Rastgele.Next(1, 501);//©csharpturkcesi
Ve butonun Click olayına da şunu yazabilirsiniz :
MessageBox.Show("Tebrikler,Yakaladınız");
Şimdi kodları biraz açalım:
Random Rastgele = new Random();
Bu kodda Rastgele(Buraya isim veriyoruz,kurallar dahilinde) isminde yeni bir random sayı metodu istediğimizi belirtiyoruz.
button1.Left = Rastgele.Next(1, 501);
Bunda ise Butonu sola doğru 1 ila 500 arasında bir sayı ile kaydırıyoruz. Bu butonun left özelliğinde pixel olarak algılanır. Üretilen sayı kadar sola pixel olarak kayar.
button1.Top = Rastgele.Next(1, 501);
Bu Left’ten farklı olarak Top yani yukarı doğru kaydırma yapar.
Mouse Enter olayı, mouse’un üzerine gelindiği anı gösterir.
Bu oyunda mouse’un üzerine geldiğinizde kaçtığını göreceksiniz. Eğer butonu biraz büyük yaptıysanız yakalamanız mümkündür : )
Bir de formu baslangicta büyük ekranda gösterirseniz daha estetik olur. Ayrıca random sayı aralıgını değiştirerek farklılıkları inceleyebilirsiniz.
çok güzel bir anlatım
while (index!=btnsayi.Length)
{
Random rand = new Random();
rastgele = rand.Next(1, 9);
m_Flag = true;
for (int i = 0; i < btnsayi.Length; i++)
{
if (rastgele.ToString() == btnsayi[i].ToString())
m_Flag = false;
if(m_Flag)
{
btnsayi[index] = rastgele;
index++;
}
}
}
btn1.Text = btnsayi[0].ToString();
btn2.Text = btnsayi[1].ToString();
btn3.Text = btnsayi[2].ToString();
btn4.Text = btnsayi[3].ToString();
btn5.Text = btnsayi[4].ToString();
btn6.Text = btnsayi[5].ToString();
btn7.Text = btnsayi[6].ToString();
btn8.Text = btnsayi[7].ToString();
bu kodu yazıyorum ama yinede hepsi aynı sayı oluyor nerede hata var çözemedim
tmm buldum ya 🙂
nerede buldun ?
ikinci if for’un dışında olacak beyler
Beyler ya buttonlara rast gele sayı nasıl yazdırıcam ?
evden eve nakliyat programı yazmaya çalışıyorum işçilerime izin günü vericem sırayla olmuyor katiyen kapamıyorum 😦