C# Windows Forms RadioButton Kullanımı ve Özellikleri
Windows Forms uygulamalarında kullanıcıya birden fazla seçenek sunup bunlardan yalnızca birini seçmesini sağlamak için RadioButton kontrolü kullanılır. Örneğin kullanıcıdan şehir, cinsiyet, ödeme yöntemi veya tercih seçmesi istendiğinde RadioButton kullanılabilir.
Bu makalede Visual Studio'da RadioButton kullanımı, önemli özellikleri ve seçilen seçeneğin bir Label üzerinde gösterilmesi anlatılmaktadır.
1. RadioButton Nedir?
RadioButton, kullanıcının bir seçenek grubu içerisinden genellikle yalnızca bir seçeneği işaretlemesini sağlayan Windows Forms kontrolüdür.
Örneğin bir formda Ankara, İzmir, İstanbul ve Mardin seçenekleri varsa kullanıcı bu şehirlerden birini seçebilir. Bir seçenek işaretlendiğinde aynı grup içerisindeki diğer seçeneğin işareti otomatik olarak kaldırılır.
Önemli: RadioButton'ların hangi gruba ait olduğu, form üzerindeki yerleşimlerine göre belirlenir. Aynı GroupBox veya Panel içindeki RadioButton'lar aynı grup kabul edilir. Farklı GroupBox'lar içindeki RadioButton'lar ise birbirinden bağımsız gruplar oluşturur.
2. Visual Studio'da RadioButton Ekleme
Windows Forms tasarım ekranında RadioButton eklemek için aşağıdaki adımları izleyebilirsiniz:
-
Form tasarım ekranını açın.
-
Araç Kutusu (Toolbox) bölümünü açın.
-
RadioButton kontrolünü bulun ve form üzerine sürükleyin.
-
Seçenek sayısı kadar RadioButton ekleyin.
-
Özellikler penceresinden her kontrolün Name ve Text özelliklerini ayarlayın.
Örneğimizde kullanıcıya dört şehir seçeneği sunacağız. Formumuza dört RadioButton, bir Button ve sonucu göstermek için bir Label ekleyelim.
-
Birinci RadioButton'ın Name özelliği: radioButton1, Text özelliği: Ankara
-
İkinci RadioButton'ın Name özelliği: radioButton2, Text özelliği: İzmir
-
Üçüncü RadioButton'ın Name özelliği: radioButton3, Text özelliği: İstanbul
-
Dördüncü RadioButton'ın Name özelliği: radioButton4, Text özelliği: Mardin
-
Button kontrolünün Name özelliği: button1, Text özelliği: Göster
-
Label kontrolünün Name özelliği: sonuc, Text özelliği: Seçiminiz burada görünür
Name, kontrolün kod içinde kullanılan adıdır. Text ise kullanıcıya ekranda gösterilen yazıdır. Örneğin RadioButton'ın Name değeri radioButton1, ekranda görünen Text değeri ise Ankara olabilir.
3. RadioButton'ın Önemli Özellikleri
RadioButton seçildiğinde, Özellikler penceresinden kontrolün görünümü ve davranışı değiştirilebilir. En sık kullanılan özellikler şunlardır:
-
Name: Kontrolün kod içinde kullanılan adını belirler. Örneğin radioButton1.
-
Text: RadioButton'ın yanında kullanıcıya gösterilen metni belirler. Örneğin Ankara.
-
Checked: RadioButton'ın seçili olup olmadığını belirtir. Seçiliyse true, seçili değilse false değerini alır.
-
AutoCheck: Kullanıcı RadioButton'a tıkladığında seçimin otomatik olarak değişmesini sağlar. Varsayılan değeri genellikle true olur.
-
Enabled: Kontrolün kullanılabilir olup olmadığını belirler. Değeri false yapılırsa kullanıcı RadioButton'ı seçemez.
-
Visible: Kontrolün formda görünüp görünmeyeceğini belirler.
-
Appearance: RadioButton'ın görünümünü belirler. Normal görünümünde seçim dairesi bulunur. Button değeri seçilirse kontrol düğme görünümüne yaklaşır.
-
CheckAlign: Seçim dairesinin kontrol içindeki hizasını belirler.
-
TextAlign: Kontrolün üzerindeki yazının hizasını belirler.
-
TabIndex: Klavyedeki Tab tuşuyla kontroller arasında gezinirken kontrolün sırasını belirler.
-
TabStop: Tab tuşuyla bu kontrole odaklanılıp odaklanılamayacağını belirler.
-
Font: Yazı tipini, yazı boyutunu ve yazının kalın ya da eğik olmasını ayarlar.
-
ForeColor: Kontrol üzerindeki yazının rengini belirler.
-
BackColor: Kontrolün arka plan rengini belirler.
-
FlatStyle: Kontrolün görsel stilini belirler.
4. Checked Özelliğiyle Seçimi Kontrol Etme
Bir RadioButton'ın seçili olup olmadığını anlamak için Checked özelliği kullanılır. Bu özellik seçili bir kontrol için true, seçili olmayan bir kontrol için false döndürür.
if (radioButton1.Checked == true)
{
// radioButton1 seçili
}
C# dilinde Boolean türündeki bir değeri doğrudan koşul olarak kullanabiliriz. Bu nedenle aynı kontrol daha kısa şekilde de yazılabilir:
if (radioButton1.Checked)
{
// radioButton1 seçili
}
Bir RadioButton'ı uygulama başladığında seçili göstermek için Özellikler penceresindeki Checked değerini True yapabilirsiniz. Aynı işlem kodla da gerçekleştirilebilir:
radioButton1.Checked = true;
5. Seçilen Şehri Label Üzerinde Gösterme
Örneğimizde kullanıcı bir şehir seçecek ve Göster butonuna tıkladığında seçtiği şehir Label üzerinde görünecek.
Form tasarımında button1 isimli butona çift tıklayın. Visual Studio, butonun Click olayı için aşağıdaki metodu oluşturur:
private void button1_Click(object sender, EventArgs e)
{
if (radioButton1.Checked == true)
{
sonuc.Text = radioButton1.Text;
}
else if (radioButton2.Checked == true)
{
sonuc.Text = radioButton2.Text;
}
else if (radioButton3.Checked == true)
{
sonuc.Text = radioButton3.Text;
}
else if (radioButton4.Checked == true)
{
sonuc.Text = radioButton4.Text;
}
else
{
sonuc.Text = "Lütfen bir şehir seçin.";
}
}
Kodun çalışma mantığı
Butona tıklandığında program ilk olarak radioButton1 kontrolünün Checked değerine bakar. Bu RadioButton seçiliyse seçeneğin metnini sonuc adlı Label'ın Text özelliğine aktarır.
İlk seçenek seçili değilse sırayla diğer RadioButton'lar kontrol edilir. Örneğin kullanıcı İzmir'i seçtiğinde radioButton2.Checked değeri true olur ve Label'a radioButton2.Text değeri yazılır.
Hiçbir seçeneğin seçili olmadığı durumda program else bölümüne girer ve kullanıcıya seçim yapması gerektiğini bildirir.
6. Text Özelliğini Kullanmanın Faydası
Seçilen şehrin adını doğrudan kodda yazmak yerine RadioButton'ın Text özelliğinden alabiliriz:
sonuc.Text = radioButton2.Text;
Bu kullanımda Label'a, seçilen RadioButton'ın ekranda görünen metni aktarılır. Daha sonra RadioButton'ın Text değeri değiştirilirse kodu değiştirmeye gerek kalmaz.
Örneğin radioButton2 kontrolünün Text değeri İzmir yerine İzmir şehri olarak değiştirilirse, seçilen değer Label üzerinde de İzmir şehri şeklinde görünür.
7. GroupBox ile Birden Fazla Seçenek Grubu Oluşturma
Bazen aynı formda birbirinden bağımsız seçenek grupları kullanmak isteyebiliriz. Örneğin kullanıcıdan hem şehir hem de eğitim türü seçmesini isteyebiliriz.
Bu durumda şehir RadioButton'larını bir GroupBox, eğitim türü RadioButton'larını başka bir GroupBox içine yerleştirebiliriz. Her GroupBox kendi içindeki seçenekleri gruplar. Böylece kullanıcı bir şehir ve bir eğitim türü seçebilir.
Örnek:
-
Şehir seçenekleri: Ankara, İzmir, İstanbul
-
Eğitim türü seçenekleri: Online, Yüz yüze
Her iki seçenek grubu farklı GroupBox'larda yer aldığı için kullanıcı her gruptan birer seçim yapabilir.
8. CheckedChanged Olayı
Örneğimizde seçilen şehir, kullanıcı Göster butonuna tıkladığında ekrana yazılır. Seçim yapılır yapılmaz işlem gerçekleştirmek için RadioButton'ın CheckedChanged olayı kullanılabilir.
Bu olay, RadioButton'ın Checked değeri değiştiğinde çalışır. Örneğin radioButton1 için aşağıdaki metot kullanılabilir:
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
if (radioButton1.Checked)
{
sonuc.Text = radioButton1.Text;
}
}
Olayı oluşturmak için tasarım ekranında RadioButton'a çift tıklayabilir veya Özellikler penceresindeki olaylar bölümünden CheckedChanged olayını seçebilirsiniz.
9. RadioButton Kullanırken Dikkat Edilmesi Gerekenler
-
Aynı grup içindeki RadioButton'lardan yalnızca biri seçilebilir.
-
Bağımsız seçim grupları oluşturmak için RadioButton'ları farklı GroupBox veya Panel kontrolleri içine yerleştirin.
-
Name özelliği kodda kullanılır; Text özelliği kullanıcıya gösterilir.
-
Kullanıcının mutlaka seçim yapması gerekiyorsa başlangıçta hiçbir RadioButton'ı seçili yapmayabilir ve kodda seçim yapılmadığı durumu kontrol edebilirsiniz.
-
Seçim yapılır yapılmaz işlem yapılması gerekiyorsa CheckedChanged olayından yararlanabilirsiniz.
10. Konunun Özeti
-
RadioButton: Bir seçenek grubundan seçim yapmak için kullanılır.
-
Checked: RadioButton'ın seçili olup olmadığını belirtir.
-
Text: RadioButton'ın yanında görünen metni içerir.
-
Name: Kontrolün kod içinde kullanılan adıdır.
-
GroupBox ve Panel: Birbirinden bağımsız RadioButton grupları oluşturmak için kullanılabilir.
-
Click olayı: Butona tıklandığında seçimi kontrol etmek için kullanılabilir.
-
CheckedChanged olayı: RadioButton'ın seçimi değiştiğinde çalışır.
RadioButton kullanarak kullanıcıdan tek bir seçim alabilir, Checked özelliğiyle seçimi kontrol edebilir ve seçilen değeri Text özelliği üzerinden uygulamanın başka bir bölümünde gösterebiliriz.