17 Haziran 2012 Pazar

C#'da En Sık Kullanılan Kontroller

Merhaba Webkolog okurları! Bugün C# .Net Framework 4 ve Visual Studio 2010 kullanarak uygulamalarımızda en sık kullandığımız kontrolleri inceleyeceğiz. Bu kontroller, kullanıcı arayüzlerimizi oluştururken temel yapı taşlarıdır ve uygulamalarımızın işlevselliğini ve kullanıcı deneyimini doğrudan etkiler. Gelin, bu kontrolleri yakından tanıyalım ve nasıl kullanıldıklarına dair örneklere göz atalım.

1. Button (Düğme) Kontrolü

Button kontrolü, kullanıcıların tıklayarak bir eylemi tetiklediği temel bir etkileşim aracıdır.

// Bir Button kontrolü oluşturma ve forma ekleme
Button btn = new Button();
btn.Text = "Button 1"; // Düğme üzerinde görüntülenecek metin
btn.Width = 200;        // Düğme genişliği
btn.Height = 50;       // Düğme yüksekliği
btn.Top = 0;           // Düğme'nin form üzerindeki dikey konumu
btn.Left = 0;          // Düğme'nin form üzerindeki yatay konumu
this.Controls.Add(btn); // Düğmeyi forma ekleme
// Kodla event ekleme (olay bağlama)
void button1_Click(object sender, EventArgs e)
{
    comboBox1.KeyDown += new KeyEventHandler(comboBox1_KeyDown);
}
void comboBox1_KeyDown(object sender, KeyEventArgs e)
{
    throw new NotImplementedException(); // Henüz implemente edilmemiş bir işlevi temsil eder.
}
// Event çıkarma (olay bağlantısını kaldırma)
button1.Click -= new EventHandler(button2_Click);

2. Label (Etiket) Kontrolü

Label kontrolü, form üzerinde statik metinler görüntülemek için kullanılır. Kullanıcının değiştiremeyeceği bilgilendirme metinleri için idealdir.

// Label kontrolü özellikleri
label1.TextAlign = ContentAlignment.MiddleCenter; // Metni ortala
label1.Margin = new Padding(0);                // Kenar boşluklarını sıfırla
label1.AutoSize = false;                   // Boyutun içeriğe göre otomatik ayarlanmasını devre dışı bırak
label1.Width = 50;                          // Genişlik
label1.Height = 50;                         // Yükseklik
label1.BackColor = Color.Silver;             // Arka plan rengi
label1.BorderStyle = BorderStyle.FixedSingle; // Kenarlık stili

3. ListBox Kontrolü

ListBox kontrolü, kullanıcıya bir liste halinde seçenekler sunar. Kullanıcı, listeden bir veya birden fazla öğe seçebilir.

// ListBox kontrolü kullanımı
ListBox1.Items.Add("Yazı");                 // Listeye bir metin ekle
ListBox1.Items[0] = "Yeni Yazı";           // Belirli bir index'teki öğeyi değiştir
ListBox1.SelectedIndex = -1;             // Hiçbir öğeyi seçili yapma
ListBox1.Items.RemoveAt(0);              // Belirli bir index'teki öğeyi sil
// Özel nesnelerle ListBox kullanımı
class Mesaj
{
    public string Baslik = null;
    public string Icerik = null;
    public Mesaj(string Baslik, string Icerik)
    {
        this.Baslik = Baslik;
        this.Icerik = Icerik;
    }
    public override string ToString() // ListBox'ta görüntülenecek metni belirler
    {
        return this.Baslik;
    }
}
ListBox1.Items.Add(new Mesaj("Başlık", "İçerik")); // Listeye bir Mesaj nesnesi ekle
Mesaj msj = (Mesaj)ListBox1.Items[ListBox1.SelectedIndex]; // Seçili öğeyi Mesaj nesnesi olarak al
ListBox1.Items[ListBox1.SelectedIndex] = msj;             // Seçili öğeyi güncelle
ListBox1.Items.RemoveAt(ListBox1.SelectedIndex);          // Seçili öğeyi sil

4. TextBox Kontrolü

TextBox kontrolü, kullanıcıdan metin girişi almak için kullanılır. Tek satırlık veya çok satırlık metinler için uygundur.

// TextBox kontrolü oluşturma ve özelliklerini ayarlama
new TextBox()
{
    Dock = DockStyle.Fill, // Formun tamamını kapla
    Multiline = true,      // Çok satırlı metin girişi
    ScrollBars = ScrollBars.Both // Yatay ve dikey kaydırma çubukları
};

5. Placeholder (Yer Tutucu Metin) Kullanımı

TextBox veya diğer metin girişi kontrollerinde, kullanıcıya ne tür bir veri girmesi gerektiği hakkında ipucu vermek için placeholder metinler kullanabiliriz.

// Placeholder metin işlevselliği
private void RemoveText(object sender, EventArgs e)
{
    Control control = (Control)sender;
    if (control.Text == control.Tag.ToString()) // Eğer metin placeholder ise
    {
        control.ForeColor = Color.Black; // Metin rengini siyaha çevir
        control.Text = "";            // Metni temizle
    }
}
private void AddText(object sender, EventArgs e)
{
    Control control = (Control)sender;
    if (control.Text == "") // Eğer metin boşsa
    {
        control.ForeColor = Color.Gray; // Metin rengini gri yap
        control.Text = control.Tag.ToString(); // Metni placeholder ile doldur
    }
}
private void DefaultText(object sender, string text)
{
    Control control = (Control)sender;
    control.ForeColor = Color.Gray;    // Metin rengini gri yap
    control.Text = text;           // Metni placeholder ile doldur
    control.Tag = control.Text;     // Tag özelliğine placeholder metnini kaydet
    control.Enter += new EventHandler(RemoveText); // Enter olayına RemoveText olayını bağla
    control.Leave += new EventHandler(AddText);    // Leave olayına AddText olayını bağla
}
// Placeholder kullanımı
// DefaultText(textBoxAdi, "Placeholder Metni");  şeklinde kullanılabilir.
DefaultText(comboLocation, "Location");
DefaultText(tbEventName, "Event Name");

6. Sadece Sayı Girişine İzin Verme

TextBox kontrolünde sadece sayı girişine izin vermek için KeyPress olayını kullanabiliriz.

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    string sayiDizisi = "0123456789";
    if (sayiDizisi.Contains(e.KeyChar)) // Eğer girilen karakter bir sayı ise
    {
        // İşlem yapma (sayı girişine izin ver)
    }
    else
    {
        e.Handled = true; // Karakterin işlenmesini engelle (sayı değilse giriş yapamaz)
    }
}

7. ComboBox Kontrolü

ComboBox kontrolü, kullanıcıya bir açılır liste sunar. Kullanıcı, listeden bir seçenek seçebilir. ComboBox'ı hem metin hem de değer olarak iki boyutlu kullanmak için özel bir sınıf kullanabiliriz.

// ComboBoxItem sınıfı (metin ve değer tutmak için)
public class ComboBoxItem
{
    public string Text { get; set; }    // Görüntülenecek metin
    public object Value { get; set; }   // İlişkili değer
public override string ToString() // ComboBox'ta görüntülenecek metni döndürür
    {
        return Text;
    }
}
// ComboBox'a veri ekleme
comboReminder.DropDownStyle = ComboBoxStyle.DropDownList; // Kullanıcı sadece listeden seçim yapabilir
comboReminder.Items.Add(new ComboBoxItem() { Text = "None", Value = -1 });
comboReminder.Items.Add(new ComboBoxItem() { Text = "0 min", Value = 0 });
comboReminder.Items.Add(new ComboBoxItem() { Text = "5 mins", Value = 5 });
comboReminder.Items.Add(new ComboBoxItem() { Text = "10 mins", Value = 10 });
comboReminder.Items.Add(new ComboBoxItem() { Text = "15 mins", Value = 15 });
comboReminder.SelectedIndex = 0; // İlk öğeyi seçili yap
// Seçili öğenin değerini alma
object selectedValue = (comboReminder.SelectedItem as ComboBoxItem).Value;

8. DateTimePicker Kontrolü

DateTimePicker kontrolü, kullanıcıya bir tarih veya saat seçme arayüzü sunar.

// DateTimePicker kontrolü format ayarlama
dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "yyyy-MM-dd HH:mm:ss"; // Özel format belirtme
dateTimePicker1.ShowUpDown = true;             // Tarih ve saati yukarı/aşağı oklarla seçme

9. Kontrollerle İlgili Ek Bilgiler

  • Bir kontrolün Click olayını tetiklemek için: Button.PerformClick();
  • Kontrol oluşturup forma eklemek yukarıdaki Button örneğinde verilmiştir.
  • Event ekleme ve çıkarma örnekleri de Button örneğinde verilmiştir.

Sevgili Webkolog okurları, C# .Net Framework 4 ve Visual Studio 2010 kullanarak en sık karşılaştığımız ve kullandığımız kontrolleri ve özelliklerini bu şekilde özetlemiş olduk. Bu kontrolleri ve örnek kullanımlarını anlamak, daha etkili ve kullanıcı dostu arayüzler geliştirmenize yardımcı olacaktır.

Webkolog'u takipte kalın!

Hepinize bol kontrollü ve başarılı projeler dilerim!

0 yorum:

Yorum Gönder