232-301-2136
kursat.arslan@deu.edu.tr
Buca Eğitim Fakültesi
Sosyal Bina, 2.Kat 207, İzmir
  • Ana Sayfa
  • Özgeçmiş
  • Hakkımda
  • Blog
  • İletişim
  • Ders Kayit
  • Giriş
    E-mail Adresi:
    Şifre:
Yaratan rabbinin adıyla oku! Alak Suresi - 1. Ayet
Son blog yazısı (3.11.2023) Bir şiir: Gitse
Dr. Kürşat ArslanDokuz Eylül Üniversitesi, Buca Eğitim Fakültesinde, Bilgisayar ve Öğretim Teknolojileri bölümünde Doçent.

c# da fonksiyon oluşturma (parametre ve random kullanımı)

Yayınlanma: 14 Nisan, 2018 Güncellenme: 13 Aralık, 2019

Şimdi bu örneğimizde butonlardan herhangi birine tıkladığımızda form'da bulunan nesne gruplarından herhangi birini rasgele seçen, ve yine rasgele bir renge boyayan örneği fonksiyon yardımıyla yapacağız. Bu örneğimizde şu ön bilgilere ihtiyacınız olacak: random() ve for yada foreach öngüsü. 

1. Aşamada: Öncelikle tasarım ekranında formunuza aşağıdaki gibi herbirinden en az beş tane olmak üzere buton ve textbox ve ayrıca bir tane listbox ekleyin. Butonların isimlerini değiştirebilirsiniz, yada olduğu gibi bırakın. listbox a tasarım ekranında aşağıdaki gibi renk isimlerini ekleyin. Bunların sayısını artırabilirsiniz. 

2. Aşamada: Butonlardan herhangi birine tıkladığımızda istediğimiz kodun çalışması için bütün butonları seçin ve olaylar bölümünden click olayını tıklayın, böylece bütün butonlarda aynı kod çalışacaktır. Şimdi  Click olayına aşağıda gibi bir kod ekleyin.

    Random rnd = new Random();
    int s1 = rnd.Next(4); //listboxtan seçilen rasgele renk

    string renk = listBox1.Items[s1].ToString();
    string[] abc = { "buton", "textbox", "listbox" };

    boya(abc[rnd.Next(3)], renk); //boya fonksiyonuna göndeirlen rasgele form nesnesi ve renk

bu kod ile boya fonksiyonuna iki parametre gönderiyoruz, 1. parametre abc dizisinden rasgele bir dizi elemanı seçmek için, ikinci parametre ise listbox içerisinden rasgele bir renk seçmek için kullanılacak.

3.Aşamada: Boya fonksiyonumuzu oluşturuyoruz. 

public void boya(string ne, string renk)
{
    foreach (Control nesne in this.Controls)
    {
        if (nesne is Button && ne=="buton")
            nesne.BackColor = Color.FromName(renk);
        if (nesne is TextBox && ne == "textbox")
            nesne.BackColor = Color.FromName(renk);
        if (nesne is ListBox && ne == "listbox")
            nesne.BackColor = Color.FromName(renk);
    }
}

hepsi bu kadar gördüğünüz gibi gayet kolay, umarım faydalı olmuştur. Bu soruyu başka şekilde çözdüm diyorsanız, lütfen mail atın alternatif olarak paylaşalım.

Bu gibi yazıların çoğalması için site içerisinde yer alan reklama tıklayın. Teşekkürler :)

Bir Yorum Bırak

    Bu yazıya şimdiye dek yapıldı.
  • Avatar
    Sibel 12/12/2019 23:01:24
    Merhaba Kürşat Bey,

    Bu örneğin kod gösteriminde  konuya cok hakim olmayanlar için eksiklikle var sanki.

    Tam olarak ne yapıldığını anlamadım. Direkt kodları kopyalayıp programı çalıştırıp ne istendiğini görererek farklı bir yöntem var mı denemek istedim. Fakat kodları kopyaladığımda hatalar olduğunu gördüm.
    Random rnd=new Random(); sınıfı tanımlanmamış . Bu nedenle "rnd" nesnesinin altı kırmızı oluyor.
     
    string renk = listBox1.Items[s1].ToString();   bölümünde " renk" string değeri bu koda bağlı ama  "s1" değeri nereden geliyor anlayamadım.  yani " renk" değeri  ve "s1" değişkeni de hata veriyor.

    Teşekkür ederim
  • Avatar
    Kürşat Arslan 13 Aralık, 2019 11:00:05

    Sibel Hanım, Teşekkürler

    Belirttiğiniz noktaları düzelttim. 

Bu site Galloglu.com üzerinden, öğrencilerim ve diğer ilgili herkes için online içerik geliştirme amaçlı tasarlanmıştır. Özellikle SPSS ve ARDUINO blog yazıları, sizin bu konuları örnekler üzerinden daha iyi anlamanız için basitleştirilerek anlatılmıştır. Sitede yer alan içerikler, düzenli olarak kontrol edilerek hatalardan kaçınılmaya çalışılmaktadır, diğer taraftan bilgilerin tümüyle doğruluğu garanti edilemez.
Designed and Created by Kursat Arslan. Copyrigt © 2016-2024
Bu site Kürşat Arslan tarafından tasarlanmış ve geliştirilmiştir.
Bütün hakları saklıdır.Sitede yer alan bütün içerikler galloglu.com'a aittir.