Merhaba değerli Webkolog.net takipçileri, bugünkü yazımızda C# .NET Framework 4 ile Windows Forms uygulamaları geliştirirken en sık kullandığımız kullanıcı arayüzü kontrollerini yakından inceleyeceğiz. Bu kontroller, kullanıcılarımızla etkileşim kurmamızı, veri girmelerini sağlamamızı ve uygulamamızın görsel öğelerini oluşturmamızı sağlayan temel yapı taşlarıdır. Gelin, C#'ta en çok karşımıza çıkan bu kontrollerin ne işe yaradığını ve nasıl kullanıldığını birlikte keşfedelim.
Kontrollerin Ortak Özellikleri
Windows Forms'taki çoğu kontrol, benzer temel özelliklere sahiptir. Bu özellikler, kontrolün görünümünü, konumunu ve davranışını ayarlamamızı sağlar:
Name
: Kontrolün kod içinde erişileceği benzersiz isim.Text
: Kontrol üzerinde görünen metin (örneğin, bir butonun üzerindeki yazı veya bir Label'ın içeriği).Location
: Kontrolün formu üzerindeki konumu (X ve Y koordinatları).Size
: Kontrolün genişliği ve yüksekliği.Enabled
: Kontrolün etkileşime açık olup olmadığını belirler (true
ise etkin,false
ise devre dışı).Visible
: Kontrolün kullanıcı arayüzünde görünüp görünmediğini belirler (true
ise görünür,false
ise gizli).Font
: Kontrol üzerindeki metnin yazı tipi, boyutu ve stili.ForeColor
: Kontrol üzerindeki metnin rengi.BackColor
: Kontrolün arka plan rengi.
En Sık Kullanılan Windows Forms Kontrolleri
1. Button (Düğme)
Kullanıcının bir eylemi tetiklemesini sağlayan en temel kontroldür. Genellikle bir tıklama olayı (Click
) ile birlikte kullanılır.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Tasarımcıda bir buton (button1) eklenmiş olduğunu varsayalım
this.button1.Text = "Tıkla Bana!";
this.button1.Click += new EventHandler(button1_Click); // Olayı bağlama
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Butona tıkladınız!");
}
}
2. TextBox (Metin Kutusu)
Kullanıcının tek satırlık veya çok satırlık metin girmesini veya görüntülemesini sağlar.
Text
: Metin kutusunun içeriği.Multiline
: Metin kutusunun çok satırlı olup olmadığını belirler.PasswordChar
: Şifre girişi için karakteri gizler.TextChanged
: Metin kutusunun içeriği değiştiğinde tetiklenir.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Tasarımcıda bir TextBox (textBox1) eklenmiş olduğunu varsayalım
this.textBox1.Multiline = true;
this.textBox1.Text = "Varsayılan Metin";
this.textBox1.TextChanged += new EventHandler(textBox1_TextChanged);
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
// Metin kutusundaki her değişiklikte bu kod çalışır
this.Text = "Yeni Başlık: " + this.textBox1.Text; // Form başlığını değiştir
}
}
3. Label (Etiket)
Kullanıcı arayüzünde sadece metin görüntülemek için kullanılır. Kullanıcı tarafından düzenlenemez.
Text
: Görüntülenecek metin.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Tasarımcıda bir Label (label1) eklenmiş olduğunu varsayalım
this.label1.Text = "Hoş Geldiniz!";
this.label1.ForeColor = System.Drawing.Color.Blue;
this.label1.Font = new System.Drawing.Font("Arial", 12, System.Drawing.FontStyle.Bold);
}
}
4. ComboBox (Açılır Liste)
Kullanıcının önceden tanımlanmış bir liste içinden tek bir öğe seçmesini sağlar. Hem bir liste hem de bir metin kutusu özelliği gösterir.
Items
: Listeye öğe eklemek, çıkarmak veya temizlemek için kullanılır (Add()
,Remove()
,Clear()
).SelectedItem
: Seçilen öğeyi döndürür.SelectedIndex
: Seçilen öğenin indeksini döndürür.Text
: Metin kutusu kısmındaki metin.DropDownStyle
: Açılır listenin davranışını belirler (DropDown
,DropDownList
,Simple
).
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Tasarımcıda bir ComboBox (comboBox1) eklenmiş olduğunu varsayalım
this.comboBox1.Items.Add("Elma");
this.comboBox1.Items.Add("Armut");
this.comboBox1.Items.Add("Çilek");
this.comboBox1.DropDownStyle = ComboBoxStyle.DropDownList; // Sadece listeden seçim yapılabilir
this.comboBox1.SelectedIndexChanged += new EventHandler(comboBox1_SelectedIndexChanged);
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show("Seçilen meyve: " + this.comboBox1.SelectedItem.ToString());
}
}
5. ListBox (Liste Kutusu)
Kullanıcının bir listeden bir veya birden fazla öğe seçmesini sağlar. ComboBox'tan farklı olarak, tüm öğeler her zaman görünürdür (kaydırma çubukları olabilir).
Items
: Listeye öğe eklemek, çıkarmak veya temizlemek için kullanılır.SelectedItem
: Seçilen tek öğeyi döndürür (tek seçim modunda).SelectedItems
: Seçilen tüm öğeleri döndürür (çoklu seçim modunda).SelectedIndex
: Seçilen tek öğenin indeksini döndürür.SelectedIndices
: Seçilen tüm öğelerin indekslerini döndürür.SelectionMode
: Seçim modunu belirler (None
,One
,MultiSimple
,MultiExtended
).
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Tasarımcıda bir ListBox (listBox1) eklenmiş olduğunu varsayalım
this.listBox1.Items.Add("Kırmızı");
this.listBox1.Items.Add("Mavi");
this.listBox1.Items.Add("Yeşil");
this.listBox1.Items.Add("Sarı");
this.listBox1.SelectionMode = SelectionMode.MultiSimple; // Çoklu seçim
this.listBox1.SelectedIndexChanged += new EventHandler(listBox1_SelectedIndexChanged);
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string secilenRenkler = "Seçilen Renkler:\n";
foreach (string renk in this.listBox1.SelectedItems)
{
secilenRenkler += renk + "\n";
}
MessageBox.Show(secilenRenkler);
}
}
6. CheckBox (Onay Kutusu)
Kullanıcının bir seçeneği işaretlemesini veya işaretini kaldırmasını sağlar (true/false durumu).
Checked
: Onay kutusunun işaretli olup olmadığını belirler (bool
).CheckState
: Onay kutusunun durumunu belirler (Checked
,Unchecked
,Indeterminate
- üç durumlu).CheckedChanged
: Onay kutusunun durumu değiştiğinde tetiklenir.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Tasarımcıda bir CheckBox (checkBox1) eklenmiş olduğunu varsayalım
this.checkBox1.Text = "Bildirimleri Aç";
this.checkBox1.Checked = true; // Varsayılan olarak işaretli
this.checkBox1.CheckedChanged += new EventHandler(checkBox1_CheckedChanged);
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (this.checkBox1.Checked)
{
MessageBox.Show("Bildirimler açık.");
}
else
{
MessageBox.Show("Bildirimler kapalı.");
}
}
}
7. RadioButton (Seçenek Düğmesi)
Bir grup içinden yalnızca tek bir seçeneğin seçilmesini sağlar. Genellikle GroupBox
veya Panel
gibi konteyner kontrolleri içine yerleştirilerek gruplandırılırlar.
Checked
: Seçenek düğmesinin seçili olup olmadığını belirler (bool
).
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Tasarımcıda bir GroupBox (groupBox1) içine radioButton1 ve radioButton2 eklenmiş olduğunu varsayalım
this.radioButton1.Text = "Erkek";
this.radioButton2.Text = "Kadın";
this.radioButton1.Checked = true; // Varsayılan seçim
this.radioButton1.CheckedChanged += new EventHandler(radioButton_CheckedChanged);
this.radioButton2.CheckedChanged += new EventHandler(radioButton_CheckedChanged);
}
private void radioButton_CheckedChanged(object sender, EventArgs e)
{
RadioButton rb = sender as RadioButton;
if (rb != null && rb.Checked)
{
MessageBox.Show("Seçilen Cinsiyet: " + rb.Text);
}
}
}
8. DateTimePicker (Tarih Seçici)
Kullanıcının takvim üzerinden kolayca bir tarih veya saat seçmesini sağlar.
Value
: SeçilenDateTime
değerini alır veya ayarlar.Format
: Görüntüleme formatını belirler (Long
,Short
,Time
,Custom
).
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Tasarımcıda bir DateTimePicker (dateTimePicker1) eklenmiş olduğunu varsayalım
this.dateTimePicker1.Value = DateTime.Now; // Varsayılan olarak bugünü göster
this.dateTimePicker1.Format = DateTimePickerFormat.Short; // Kısa tarih formatı
this.dateTimePicker1.ValueChanged += new EventHandler(dateTimePicker1_ValueChanged);
}
private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
MessageBox.Show("Seçilen Tarih: " + this.dateTimePicker1.Value.ToShortDateString());
}
}
9. PictureBox (Resim Kutusu)
Uygulama içinde resim görüntülemek için kullanılır.
Image
: Görüntülenecek resmi alır veya ayarlar.Load()
: Bir URL'den veya dosya yolundan resmi yükler.SizeMode
: Resmin PictureBox içinde nasıl boyutlandırılacağını belirler (Normal
,StretchImage
,AutoSize
,CenterImage
,Zoom
).
using System.Drawing; // Image için
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Tasarımcıda bir PictureBox (pictureBox1) eklenmiş olduğunu varsayalım
// Yerel bir dosyadan resim yükleme
// this.pictureBox1.Image = Image.FromFile("C:\\path\\to\\your\\image.jpg");
// Bir URL'den resim yükleme (internet bağlantısı gerektirir)
// this.pictureBox1.Load("https://placehold.co/150x150/png?text=Webkolog");
this.pictureBox1.SizeMode = PictureBoxSizeMode.Zoom; // Resmi boyutlandırarak sığdır
}
}
10. ProgressBar (İlerleme Çubuğu)
Bir işlemin ilerlemesini görsel olarak göstermek için kullanılır.
Value
: İlerleme çubuğunun mevcut değeri.Minimum
: İlerleme çubuğunun minimum değeri.Maximum
: İlerleme çubuğunun maksimum değeri.
using System.Threading; // Thread.Sleep için
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Tasarımcıda bir ProgressBar (progressBar1) ve bir Button (buttonStart) eklenmiş olduğunu varsayalım
this.progressBar1.Minimum = 0;
this.progressBar1.Maximum = 100;
this.progressBar1.Value = 0;
this.buttonStart.Click += new EventHandler(buttonStart_Click);
}
private void buttonStart_Click(object sender, EventArgs e)
{
// Uzun süren bir işlemi simüle edelim
for (int i = 0; i <= 100; i += 10)
{
this.progressBar1.Value = i;
Thread.Sleep(200); // Küçük bir gecikme
Application.DoEvents(); // UI'ın güncellenmesini sağla (basit durumlarda)
}
MessageBox.Show("İşlem tamamlandı!");
this.progressBar1.Value = 0; // Sıfırla
}
}
11. Timer (Zamanlayıcı)
Belirli aralıklarla kod çalıştırmak için kullanılır. Arka planda çalışan bir bileşendir, görsel bir arayüzü yoktur.
Interval
: Olayın tetikleneceği milisaniye cinsinden aralık.Enabled
: Zamanlayıcının etkin olup olmadığını belirler.Tick
: HerInterval
süresi dolduğunda tetiklenen olay.
using System.Windows.Forms; // Timer için
public partial class Form1 : Form
{
private int sayac = 0;
public Form1()
{
InitializeComponent();
// Tasarımcıda bir Timer (timer1) ve bir Label (labelTimer) eklenmiş olduğunu varsayalım
this.timer1.Interval = 1000; // 1 saniye (1000 milisaniye)
this.timer1.Tick += new EventHandler(timer1_Tick);
// Bir buton ile başlatıp durdurabiliriz
// this.buttonStartTimer.Click += (s, e) => timer1.Start();
// this.buttonStopTimer.Click += (s, e) => timer1.Stop();
}
private void timer1_Tick(object sender, EventArgs e)
{
sayac++;
this.labelTimer.Text = "Geçen Süre: " + sayac.ToString() + " saniye";
}
private void Form1_Load(object sender, EventArgs e)
{
this.timer1.Start(); // Form yüklendiğinde zamanlayıcıyı başlat
}
}
---
Evet sevgili Webkolog.net okurları, bu yazımızda C# .NET Framework 4 ile Windows Forms uygulamalarında en sık kullanılan kullanıcı arayüzü kontrollerinin temel özelliklerini ve kullanım örneklerini inceledik. Bu kontroller, uygulamalarımızın kullanıcılarla etkileşim kurmasını sağlayan ve görsel olarak zengin arayüzler oluşturmamıza olanak tanıyan temel yapı taşlarıdır. Her bir kontrolün kendine özgü yetenekleri ve olayları vardır, bu da bize geniş bir esneklik sunar. Umarım bu rehber, C# .NET Framework 4 ile form tabanlı uygulamalar geliştirirken size yardımcı olur. Bir sonraki yazımda, C# dilinin diğer önemli yapı taşlarını keşfetmeye devam edeceğiz. Webkolog.net'i takipte kalın!
Hepinize kontrollerle dolu ve etkileşimli geliştirme süreçleri dilerim!
0 yorum:
Yorum Gönder