Merhaba değerli Webkolog.net takipçileri, bugünkü yazımızda C# .NET Framework 4 ile Windows Forms uygulamalarında kullanıcı arayüzümüzü daha düzenli ve kullanışlı hale getirmek için sıklıkla başvurduğumuz TabControl
kontrolünü yakından inceleyeceğiz. TabControl
, birden fazla bilgi veya işlev grubunu sekmeler (tab pages) aracılığıyla organize etmemizi sağlayarak, karmaşık arayüzleri daha yönetilebilir kılar. Gelin, TabControl
'ün temel özelliklerini, sekme (tab page) yönetimini ve olaylarını birlikte keşfedelim.
TabControl
Kontrolü Nedir?
TabControl
, Windows Forms'ta birden fazla sekme sayfası (TabPage
) içeren bir konteyner kontrolüdür. Her TabPage
, kendi içinde farklı kontrolleri barındırabilir ve kullanıcılar sekmeler arasında geçiş yaparak farklı içerik gruplarını görüntüleyebilir. Bu, özellikle ayar pencereleri, çok adımlı formlar veya farklı veri kategorilerini sunan uygulamalar için idealdir.
TabControl
Kontrolünün Temel Özellikleri
TabControl
kontrolü, sekmelerin görünümünü ve davranışını özelleştirmek için birçok önemli özelliğe sahiptir:
TabPages
:TabControl
içerisindeki tümTabPage
nesnelerini içeren bir koleksiyondur. Bu koleksiyon aracılığıyla sekmeleri ekleyebilir, çıkarabilir veya yönetebiliriz.SelectedTab
: Şu anda seçili olan (aktif)TabPage
nesnesini döndürür veya ayarlar.SelectedIndex
: Şu anda seçili olan sekmenin indeksini döndürür veya ayarlar (0'dan başlar).Alignment
: Sekme başlıklarınınTabControl
'ün hangi kenarında konumlanacağını belirler (Top
,Bottom
,Left
,Right
).Appearance
: Sekmelerin görsel stilini belirler (Normal
,Buttons
,FlatButtons
).SizeMode
: Sekme başlıklarının boyutlandırma davranışını belirler (Normal
,Fixed
,Fill
).HotTrack
: Fare imleci bir sekme başlığının üzerine geldiğinde vurgulanıp vurgulanmayacağını belirler (true
veyafalse
).ImageList
: Sekme başlıklarının yanında görüntülenecek resimleri içerenImageList
bileşenini ayarlar.
TabPage
Sınıfı ve Özellikleri
TabControl
içindeki her bir sekme, TabPage
sınıfının bir örneğidir. TabPage
'ler de kendi özelliklerine sahiptir:
Text
: Sekme başlığında görünen metin.Name
: Sekmenin kod içinde erişileceği benzersiz isim.Controls
:TabPage
içerisine eklenen tüm kontrollerin bir koleksiyonudur. Bu koleksiyon aracılığıyla bir sekmeye dinamik olarak kontrol ekleyebilir veya çıkarabiliriz.ImageIndex
: Sekme başlığının yanında görüntülenecek resmin indeksini belirler (TabControl
'ünImageList
'inden alınır).
Sekme Ekleme ve Yönetimi
Sekmeleri TabControl
'e eklemenin ve yönetmenin çeşitli yolları vardır:
1. Tasarımcıdan Sekme Ekleme
Visual Studio tasarımcısında TabControl
'ü seçtiğinizde, sağ üst köşede çıkan küçük akıllı etiket (smart tag) üzerinden "Add Tab" (Sekme Ekle) seçeneğini kullanarak kolayca yeni sekmeler ekleyebilirsiniz. Bu, en yaygın ve hızlı yöntemdir.
2. Kod ile Sekme Ekleme ve Kontrol Yerleştirme
Sekmeleri ve içlerindeki kontrolleri çalışma zamanında dinamik olarak da oluşturabiliriz.
using System.Windows.Forms;
using System.Drawing; // Point, Color için
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Tasarımcıda bir TabControl (tabControl1) eklenmiş olduğunu varsayalım
// İlk sekmeyi oluşturalım
TabPage tabPage1 = new TabPage("Genel Bilgiler");
tabPage1.Name = "tabPageGenel";
this.tabControl1.TabPages.Add(tabPage1); // TabControl'e sekmeyi ekle
// İlk sekmeye bir Label ve TextBox ekleyelim
Label lblAd = new Label();
lblAd.Text = "Adınız:";
lblAd.Location = new Point(10, 20);
lblAd.AutoSize = true;
tabPage1.Controls.Add(lblAd); // Sekmeye Label'ı ekle
TextBox txtAd = new TextBox();
txtAd.Name = "txtAd";
txtAd.Location = new Point(80, 17);
txtAd.Size = new Size(150, 20);
tabPage1.Controls.Add(txtAd); // Sekmeye TextBox'ı ekle
// İkinci sekmeyi oluşturalım
TabPage tabPage2 = new TabPage("Ayarlar");
tabPage2.Name = "tabPageAyarlar";
this.tabControl1.TabPages.Add(tabPage2);
// İkinci sekmeye bir CheckBox ekleyelim
CheckBox chkBildirim = new CheckBox();
chkBildirim.Text = "Bildirimleri Aç";
chkBildirim.Location = new Point(10, 10);
chkBildirim.Checked = true;
tabPage2.Controls.Add(chkBildirim);
}
}
3. Sekme Silme
Belirli bir sekmeyi silmek için TabPages.Remove()
veya TabPages.RemoveAt()
metotlarını kullanırız.
public partial class Form1 : Form
{
private void buttonSekmeSil_Click(object sender, EventArgs e)
{
// Örnek: İkinci sekmeyi sil
if (this.tabControl1.TabPages.Count > 1)
{
this.tabControl1.TabPages.RemoveAt(1); // İkinci sekme (indeks 1) silinir
MessageBox.Show("İkinci sekme silindi.");
}
else
{
MessageBox.Show("Silinecek yeterli sekme yok.");
}
}
}
4. Sekmeye İkon Ekleme (ImageList
ile)
Sekme başlıklarının yanında ikonlar görüntülemek, kullanıcı arayüzünü daha görsel hale getirir. Bunun için bir ImageList
bileşeni kullanılır.
using System.Windows.Forms;
using System.Drawing; // Image için
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Tasarımcıda bir TabControl (tabControl1) ve bir ImageList (imageList1) eklenmiş olduğunu varsayalım
// imageList1'e ikonlar eklemiş olalım (örneğin, ayarlar ikonu, kullanıcı ikonu)
this.tabControl1.ImageList = this.imageList1; // TabControl'e ImageList'i ata
// Sekmelerin ImageIndex özelliğini ayarla
// İlk sekme (Genel Bilgiler) zaten var veya yukarıda oluşturuldu
this.tabControl1.TabPages[0].ImageIndex = 0; // imageList1'deki ilk ikonu kullan
// İkinci sekme (Ayarlar) zaten var veya yukarıda oluşturuldu
this.tabControl1.TabPages[1].ImageIndex = 1; // imageList1'deki ikinci ikonu kullan
}
}
TabPage
'in ImageIndex
özelliği, TabControl
'ün ImageList
'indeki resimlerin sırasına karşılık gelir.
TabControl
Olayları
TabControl
, kullanıcı etkileşimlerine ve sekme değişikliklerine tepki vermek için çeşitli olaylar sunar:
SelectedIndexChanged
: Kullanıcı farklı bir sekmeyi seçtiğinde tetiklenir. En sık kullanılan olaydır.Selecting
: Bir sekme seçilmeden önce tetiklenir. Sekme geçişini iptal etme imkanı sunar.Selected
: Bir sekme seçildikten sonra tetiklenir.Deselecting
: Bir sekmenin seçimi kaldırılmadan önce tetiklenir.Deselected
: Bir sekmenin seçimi kaldırıldıktan sonra tetiklenir.
Örnek: SelectedIndexChanged
Olayı
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// tabControl1'in sekmelerle doldurulduğunu varsayalım
this.tabControl1.SelectedIndexChanged += new EventHandler(tabControl1_SelectedIndexChanged);
}
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
// Seçilen sekmenin metnini MessageBox ile göster
if (this.tabControl1.SelectedTab != null)
{
MessageBox.Show("Seçilen Sekme: " + this.tabControl1.SelectedTab.Text);
// Seçilen sekmenin adına göre farklı işlemler yapabilirsiniz
if (this.tabControl1.SelectedTab.Name == "tabPageAyarlar")
{
// Ayarlar sekmesi seçildiğinde yapılacak özel işlemler
Console.WriteLine("Ayarlar sekmesi aktif.");
}
}
}
}
---
Evet sevgili Webkolog.net okurları, bu yazımızda C# .NET Framework 4 ile TabControl
kontrolünün temel özelliklerini, sekme yönetimini ve olaylarını detaylı bir şekilde inceledik. TabControl
, uygulamalarınızda karmaşık arayüzleri düzenlemenin ve kullanıcıya daha iyi bir deneyim sunmanın güçlü bir yoludur. Ayar pencereleri, çok adımlı sihirbazlar veya farklı veri kategorilerini içeren formlar için ideal bir çözümdür. Umarım bu rehber, C# .NET Framework 4 ile 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 sekmelerle dolu ve düzenli geliştirme süreçleri dilerim!
0 yorum:
Yorum Gönder