4.4 – Koşula Dayalı Yönlendirme


📘 4.4 – Koşula Dayalı Yönlendirme


🔹 Açıklama:

Kullanıcının verdiği yanıtlara veya yaptığı seçimlere göre uygulamanın farklı ekranlara, formlara ya da işlemlere yönlendirilmesi, kullanıcı deneyiminin merkezinde yer alır. Bu, sadece bilgi göstermenin ötesine geçip, programı reaktif bir sistem haline getirir.

Koşula dayalı yönlendirme sayesinde:

  • Kullanıcı girişleri doğrultusunda ekranlar arasında geçiş sağlanır
  • Roller (admin, kullanıcı vs.) için farklı içerikler sunulabilir
  • Adım adım ilerleyen formlar (wizard yapısı) kurulabilir
  • Yönlendirme hem işlem hem de kullanıcı dostu akış oluşturur

📍 Kullanım Alanları:

  • Giriş paneli sonrası rol bazlı form yönlendirme
  • Bilgi testleri: doğru/yanlış sonucu farklı ekrana götürme
  • Ayar menüsü üzerinden farklı bölümlere geçiş
  • Kayıt veya anket formlarında adım adım ilerleme
  • Tema veya dil seçimine göre ekran özelleştirme

🎯 Kazanımlar:

  • Koşula göre farklı form açabilme
  • Mevcut formu kapatıp yeni formu aktif etme
  • if-else ve switch-case ile ekran akışı kontrolü
  • Uygulamalarda kullanıcı rolü farkındalığı geliştirme
  • Gerçek uygulama senaryosu yazma pratiği kazanma

🧪 4.4 – Koşula Dayalı Yönlendirme: Örneklerle Uygulama


📌 Örnek 1: Giriş Ekranından Rol Bazlı Yönlendirme

🎯 Amaç:
Kullanıcı giriş yaptığında rolüne göre farklı forma yönlendirme (Admin vs. Öğrenci).

🎨 Formlar:

  • GirisForm.cs
  • AdminForm.cs
  • OgrenciForm.cs

💻 Kod (GirisForm.cs):

private void btnGiris_Click(object sender, EventArgs e)
{
    string kullanici = txtKullanici.Text;
    string sifre = txtSifre.Text;

    if (kullanici == "admin" && sifre == "123")
    {
        AdminForm admin = new AdminForm();
        admin.Show();
        this.Hide();
    }
    else if (kullanici == "ogrenci" && sifre == "456")
    {
        OgrenciForm ogrenci = new OgrenciForm();
        ogrenci.Show();
        this.Hide();
    }
    else
    {
        MessageBox.Show("Giriş başarısız.");
    }
}

📝 Açıklama:
Giriş bilgilerine göre farklı formlar açılıyor, this.Hide() ile önceki form gizleniyor.


📌 Örnek 2: Sınav Sonucuna Göre Mesaj Ekranına Geçiş

🎯 Amaç:
Kullanıcının sınav notuna göre “Başarılı” ya da “Tekrar” formuna geçiş.

🎨 Formlar:

  • SinavForm.cs, BasariliForm.cs, TekrarForm.cs

💻 Kod:

private void btnKontrolEt_Click(object sender, EventArgs e)
{
    if (int.TryParse(txtNot.Text, out int not))
    {
        if (not >= 60)
        {
            BasariliForm b = new BasariliForm();
            b.Show();
        }
        else
        {
            TekrarForm t = new TekrarForm();
            t.Show();
        }

        this.Hide();
    }
    else
    {
        MessageBox.Show("Geçerli not giriniz.");
    }
}

📝 Açıklama:
Öğrencinin başarısı koşula bağlı olarak farklı formlara yönlendiriliyor.


📌 Örnek 3: Kullanıcı Tercihine Göre Tema Yönlendirmesi

🎯 Amaç:
Kullanıcıdan alınan seçime göre Light veya Dark tema formu açmak.

🎨 Formlar:

  • TemaSecimForm.cs, LightForm.cs, DarkForm.cs
  • RadioButton: rbLight, rbDark

💻 Kod:

private void btnTemaUygula_Click(object sender, EventArgs e)
{
    if (rbLight.Checked)
    {
        LightForm lf = new LightForm();
        lf.Show();
    }
    else if (rbDark.Checked)
    {
        DarkForm df = new DarkForm();
        df.Show();
    }

    this.Hide();
}

📝 Açıklama:
Koşullu yönlendirme sadece veriye değil, kullanıcı tercihine de göre yapılabilir.


📌 Örnek 4: Dil Seçimine Göre Form Açma

🎯 Amaç:
Kullanıcının seçtiği dile göre farklı dilde içerik sunan formu açmak.

🎨 Formlar:

  • DilSecimForm.cs, FormTR.cs, FormEN.cs
  • ComboBox: cmbDil (“Türkçe”, “English”)

💻 Kod:

private void btnDevam_Click(object sender, EventArgs e)
{
    switch (cmbDil.SelectedItem.ToString())
    {
        case "Türkçe":
            FormTR ft = new FormTR();
            ft.Show();
            break;
        case "English":
            FormEN fe = new FormEN();
            fe.Show();
            break;
        default:
            MessageBox.Show("Dil seçimi yapınız.");
            return;
    }

    this.Hide();
}

📝 Açıklama:
Kullanıcı deneyimini kişiselleştirmek için dil seçimi yönlendirmesi uygulanıyor.


📌 Örnek 5: Not Ortalamasına Göre Ek Ekrana Yönlendirme

🎯 Amaç:
Öğrenci yıl sonu ortalamasına göre “Mezuniyet” ya da “Devam” ekranına geçsin.

🎨 Formlar:

  • OrtHesapForm.cs, MezuniyetForm.cs, DevamForm.cs

💻 Kod:

private void btnHesapla_Click(object sender, EventArgs e)
{
    if (double.TryParse(txtOrt.Text, out double ort))
    {
        if (ort >= 70)
        {
            MezuniyetForm m = new MezuniyetForm();
            m.Show();
        }
        else
        {
            DevamForm d = new DevamForm();
            d.Show();
        }

        this.Hide();
    }
    else
    {
        MessageBox.Show("Ortalama değeri giriniz.");
    }
}

📝 Açıklama:
Yıl sonunda otomatik yönlendirme ile kullanıcıya özel ekran sunuluyor.


✅ Özet:

Bu bölümle öğrenciler:

  • Koşullara göre form geçişlerini yönetmeyi
  • Farklı senaryolarda kullanıcıyı yönlendirmeyi
  • Arayüzler arası geçişte program akışını yönetmeyi
  • Gerçek uygulama senaryolarını kurmayı öğrenmiş olur

1 Response

  1. Pingback : A'DAN Z'YE NTP - İÇİNDEKİLER - Hasan TANDOĞAN

Leave a Reply