📘 2.5 – Form Üzerindeki Kontrol Değerleriyle Çalışma
🔹 Açıklama:
C# Windows Forms, kullanıcıdan veri almayı kolaylaştıran çeşitli form kontrolleri sunar. TextBox
, ComboBox
, CheckBox
, RadioButton
, NumericUpDown
, ListBox
gibi elemanlarla yapılan etkileşimler sayesinde uygulamalar daha işlevsel ve kullanıcı dostu hale gelir.
Bu başlık altında:
- Farklı form kontrollerinin değerlerinin nasıl okunacağı
Checked
,SelectedItem
,Value
gibi temel özelliklerin kullanımı- Koşullu ifadelerle kontrol durumlarının nasıl değerlendirileceği
- Dinamik kullanıcı etkileşimleri
- Kontrol değerlerine göre karar alma ve işlem yapma
konuları örneklerle birlikte detaylı biçimde anlatılacaktır.
📍 Kullanım Alanları:
- Kullanıcının seçim yaptığı formlar
- Ayar ve tercihler içeren arayüzler
- Sınav, anket, üyelik formu gibi uygulamalar
- Giriş doğrulama ve seçenekli işlemler
- Hesaplama araçları ve filtreleme sistemleri
🎯 Kazanımlar:
- Windows Form üzerindeki farklı kontrolleri tanıma
- Kullanıcının seçim veya giriş değerlerini işleyebilme
- Formdan gelen veriye göre işlem yapabilme
- Kontrol bazlı karar yapıları geliştirme
- Etkileşimli ve sezgisel kullanıcı arayüzü tasarlama
🧪 2.5 – Form Üzerindeki Kontrol Değerleriyle Çalışma: Örnekler
📌 Örnek 1: RadioButton ile Cinsiyet Seçimi
🎯 Amaç:
Kullanıcının seçtiği cinsiyete göre mesaj gösterme.
🎨 Form Elemanları:
rbtnErkek
(RadioButton)rbtnKadin
(RadioButton)btnGoster
(Button)
💻 Kod:
private void btnGoster_Click(object sender, EventArgs e)
{
if (rbtnErkek.Checked)
MessageBox.Show("Cinsiyet: Erkek");
else if (rbtnKadin.Checked)
MessageBox.Show("Cinsiyet: Kadın");
else
MessageBox.Show("Lütfen bir cinsiyet seçiniz.");
}
📝 Açıklama:
RadioButton’lar genellikle gruplu seçimler için kullanılır. Aynı anda yalnızca biri seçilebilir. Checked
özelliği ile kontrol sağlanır.
📌 Örnek 2: CheckBox ile Hobi Seçimi
🎯 Amaç:
Kullanıcının seçtiği hobileri metin olarak listeleme.
🎨 Form Elemanları:
chkKitap
,chkSpor
,chkMuzik
(CheckBox)btnSecimleriGoster
(Button)lblSecim
(Label)
💻 Kod:
private void btnSecimleriGoster_Click(object sender, EventArgs e)
{
string hobiler = "Seçilen Hobiler: ";
if (chkKitap.Checked) hobiler += "Kitap, ";
if (chkSpor.Checked) hobiler += "Spor, ";
if (chkMuzik.Checked) hobiler += "Müzik, ";
if (hobiler.EndsWith(", "))
hobiler = hobiler.Substring(0, hobiler.Length - 2);
lblSecim.Text = hobiler;
}
📝 Açıklama:
CheckBox ile birden fazla seçim yapılabilir. Kullanıcının tercihleri tek bir metin haline getirildi ve Label
ile gösterildi.
📌 Örnek 3: ComboBox ile Seçime Göre Fiyat Gösterme
🎯 Amaç:
Kullanıcının ComboBox’tan seçtiği ürüne göre fiyatını göstermek.
🎨 Form Elemanları:
cmbUrunler
(ComboBox)btnFiyat
(Button)lblFiyat
(Label)
💻 Kod:
private void btnFiyat_Click(object sender, EventArgs e)
{
string secilen = cmbUrunler.SelectedItem?.ToString();
if (secilen == null)
{
MessageBox.Show("Lütfen bir ürün seçiniz.");
return;
}
switch (secilen)
{
case "Kalem": lblFiyat.Text = "5 TL"; break;
case "Defter": lblFiyat.Text = "12 TL"; break;
case "Silgi": lblFiyat.Text = "2 TL"; break;
default: lblFiyat.Text = "Ürün bulunamadı."; break;
}
}
📝 Açıklama:
ComboBox’tan kullanıcı seçimi alınarak Switch-Case yapısıyla değerlendirme yapılır. SelectedItem
özelliği ile seçilen değer elde edilir.
📌 Örnek 4: NumericUpDown ile Adet ve Tutar Hesaplama
🎯 Amaç:
Kullanıcının belirlediği ürün adedine göre toplam fiyatı bulmak.
🎨 Form Elemanları:
nudAdet
(NumericUpDown)btnHesapla
(Button)lblTutar
(Label)
💻 Kod:
private void btnHesapla_Click(object sender, EventArgs e)
{
int adet = (int)nudAdet.Value;
double birimFiyat = 15.75;
double toplam = adet * birimFiyat;
lblTutar.Text = $"Toplam Tutar: {toplam:C2}";
}
📝 Açıklama:NumericUpDown
ile sadece sayısal girişe izin verilir. Hata payı düşer. Bu yapı stok ve ödeme uygulamalarında sıkça kullanılır.
📌 Örnek 5: DateTimePicker ile Yaş Hesaplama
🎯 Amaç:
Kullanıcının doğum tarihine göre yaşını göstermek.
🎨 Form Elemanları:
dtpDogumTarihi
(DateTimePicker)btnYasHesapla
(Button)lblYas
(Label)
💻 Kod:
private void btnYasHesapla_Click(object sender, EventArgs e)
{
DateTime dogumTarihi = dtpDogumTarihi.Value;
int yas = DateTime.Now.Year - dogumTarihi.Year;
if (DateTime.Now < dogumTarihi.AddYears(yas))
yas--;
lblYas.Text = $"Yaşınız: {yas}";
}
📝 Açıklama:DateTimePicker
kullanıcıdan güvenli şekilde tarih almayı sağlar. Doğru yaş hesaplamak için yıl karşılaştırması yapılır ve doğum günü geçmediyse 1 yıl düşülür.
✅ Özet:
Bu bölümde Windows Form üzerindeki kontrol elemanlarıyla (UI kontrolleri) etkileşimli uygulamalar geliştirildi. Her bir kontrol ile veri alma, yorumlama ve tepki verme örnekleri üzerinde duruldu.