31 Mart 2012 Cumartesi

C# ile Form

Merhaba değerli Webkolog.net takipçileri, bugünkü yazımızda C# .NET Framework 4 ile Windows Forms uygulamalarının temel yapı taşı olan Form'ların kullanımını detaylı bir şekilde inceleyeceğiz. Formlar, kullanıcı arayüzünün temelini oluşturur ve uygulamamızın kullanıcıyla etkileşimini sağlayan görsel bileşenleri (düğmeler, metin kutuları, listeler vb.) üzerinde barındırır. Bu makalede, Form özelliklerini, olaylarını, formlar arası iletişimi ve özel diyalog kutuları oluşturmayı ele alacağız.

Form Nedir?

Form, Windows Forms uygulamalarında bir pencereyi temsil eden bir sınıftır. Kullanıcı arayüzünde gördüğümüz her pencere aslında bir Form nesnesidir. Formlar, uygulamamızın görsel bileşenlerini barındırır ve kullanıcıyla etkileşimini yönetir.

Form Özellikleri

Formların birçok özelliği vardır. Bu özellikler, formun görünümünü ve davranışını kontrol etmemizi sağlar. İşte bazı önemli Form özellikleri:

  • Boyut ve Konum:
    • Width: Formun genişliği.
    • Height: Formun yüksekliği.
    • Size: Formun genişlik ve yüksekliğini temsil eden Size yapısı.
    • Location: Formun ekran üzerindeki konumunu temsil eden Point yapısı.
    • StartPosition: Formun ekranda hangi konumda açılacağını belirler (örneğin, CenterScreen, WindowsDefaultLocation).
  • Kenarlık ve Durum:
    • FormBorderStyle: Formun kenarlık stilini belirler (örneğin, None, FixedSingle, FixedDialog, Sizable, Maximized, Minimized).
    • WindowState: Formun durumunu belirler (örneğin, Normal, Maximized, Minimized).
    • TopMost: Formun diğer pencerelerin üzerinde olup olmayacağını belirler.
    • ShowInTaskbar: Formun görev çubuğunda görünüp görünmeyeceğini belirler.
  • Görünüm:
    • BackColor: Formun arka plan rengi.
    • ForeColor: Formun ön plan (metin) rengi.
    • Font: Formun metinlerinin yazıtipi.
    • Text: Formun başlık çubuğunda görünen metin.
    • Icon: Formun simgesi.
    • TransparencyKey: Formun hangi renginin şeffaf olacağını belirler.
    • Opacity: Formun şeffaflık düzeyini ayarlar (0 ile 1 arasında bir değer alır).
  • Diğer:
    • AutoScroll: Formun içeriği boyutundan büyükse kaydırma çubuklarının görünüp görünmeyeceğini belirler.
    • MaximizeBox: Formun büyütme düğmesinin görünüp görünmeyeceğini belirler.
    • MinimizeBox: Formun küçültme düğmesinin görünüp görünmeyeceğini belirler.
    • ControlBox: Formun kontrol kutusunun (küçültme, büyütme, kapat düğmeleri) görünüp görünmeyeceğini belirler. 

Örnek Kullanım:

// Bilgisayar ekranının boyutlarını alma
int ekranGenisligi = SystemInformation.PrimaryMonitorSize.Width;
int ekranYuksekligi = SystemInformation.PrimaryMonitorSize.Height;
// Form özelliklerini ayarlama
this.FormBorderStyle = FormBorderStyle.None; // Kenarlık yok
this.WindowState = FormWindowState.Maximized; // Formu tam ekran yap
this.TopMost = true; // Formu her zaman üstte tut
this.ShowInTaskbar = false; // Formu görev çubuğunda gösterme
// Şeffaf arka plan
this.BackColor = Color.Fuchsia; // Şeffaf renk olarak kullanılacak rengi belirle
this.TransparencyKey = Color.Fuchsia; // Belirtilen rengi şeffaf yap
this.AutoScroll = true; // İçerik taşarsa kaydırma çubuklarını göster
 

Form Olayları

Formların birçok olayı vardır. Bu olaylar, formun yaşam döngüsü ve kullanıcı etkileşimleri sırasında meydana gelir. İşte bazı önemli Form olayları:

  • Load: Form ilk yüklendiğinde meydana gelir.
  • Shown: Form ekranda göründükten sonra meydana gelir.
  • FormClosing: Form kapatılmadan önce meydana gelir. Bu olayda formun kapatılmasını iptal edebiliriz.
  • FormClosed: Form kapatıldıktan sonra meydana gelir.
  • Resize: Formun boyutu değiştiğinde meydana gelir.
  • Move: Formun konumu değiştiğinde meydana gelir.
  • Click, DoubleClick, MouseDown, MouseUp, MouseMove: Fare olayları.
  • KeyPress, KeyDown, KeyUp: Klavye olayları.

Formlar Arası İletişim

Bir uygulamada birden fazla form olabilir. Bu formlar arasında veri alışverişi yapmak gerekebilir. İşte formlar arası iletişimi sağlamanın bazı yolları:

  • Ortak Kontrole Erişim: Bir formdan başka bir formdaki bir kontrole (örneğin, TextBox) erişmek için, hedef kontrolün erişim seviyesinin uygun olması gerekir (örneğin, public veya protected internal).
    // A formundan B formunun içindeki textBox1 kontrolüne erişim (textBox1, B formunda protected internal olmalı)
    if (Application.OpenForms["Form1"] is Form1 form1)
    {
        form1.textBox1.Text = "Merhaba B Formundan";
    }
    
  • Ortak Değişkene Erişim: Bir formdan başka bir formdaki bir değişkene erişmek için, değişkenin public static olarak tanımlanması gerekir.
    // A formundan B formundaki degisken değişkenine erişim (degisken, B formunda public static olmalı)
    Form1.degisken = 10;
    
  • Veri Gönderme ve Alma: Bir formdan başka bir forma veri göndermek için, hedef formun kurucusuna (constructor) parametre ekleyebiliriz.
    // A formundan B formuna veri gönderme
    int gonderilecekVeri = 5;
    Form2 frm = new Form2(gonderilecekVeri); // Form2'yi parametre ile aç
    frm.Show();
    
    // B formu (Form2)
    int alinanVeri;
    public Form2(int _alinanVeri) // Kurucu metot
    {
        InitializeComponent();
        alinanVeri = _alinanVeri; // Alınan veriyi değişkene ata
    }
    

Alt Form Oluşturma

Bir formu başka bir formun içinde alt form olarak göstermek için ShowDialog() metodunu kullanabiliriz. ShowDialog() metodu, formu bir diyalog kutusu gibi açar ve kullanıcının bu formu kapatmadan ana forma dönmesini engeller.

private void AltFormAc(Form gelenFrm, string baslik)
{
    gelenFrm.Text = baslik; // Formun başlığını ayarla
    gelenFrm.StartPosition = FormStartPosition.CenterScreen; // Formu ekranın ortasında aç
    gelenFrm.MaximizeBox = false; // Büyütme düğmesini gizle
    gelenFrm.MinimizeBox = false; // Küçültme düğmesini gizle
    gelenFrm.FormBorderStyle = FormBorderStyle.FixedSingle; // Boyutlandırılamaz kenarlık
    gelenFrm.Icon = this.Icon; // Ana formun simgesini kullan
    gelenFrm.ShowDialog(this); // Formu diyalog olarak aç
}
// Örnek kullanım
Form2 frm2 = new Form2(10);
AltFormAc(frm2, "Alt Form");

Özel Diyalog Kutusu Oluşturma

Kendi özel diyalog kutularımızı da oluşturabiliriz. Bunun için bir Form tasarlayıp, bu Formun DialogResult özelliğini ayarlayarak ve ShowDialog() metoduyla açarak diyalog kutusu gibi davranmasını sağlayabiliriz.

Diyalog Formu (ConfirmationForm):

private void buttonOK_Click(object sender, EventArgs e)
{
    DialogResult = DialogResult.OK; // Tamam butonuna tıklandığında DialogResult'ı OK olarak ayarla
    Close(); // Formu kapat
}
private void buttonCancel_Click(object sender, EventArgs e)
{
    DialogResult = DialogResult.Cancel;  // İptal butonuna tıklandığında DialogResult'ı Cancel olarak ayarla
    Close();
}

Ana Form:

ConfirmationForm frmCon = new ConfirmationForm(); // Diyalog formunu oluştur
if (frmCon.ShowDialog(this) == DialogResult.OK) // Diyalog formu OK ile kapatıldıysa
{
    // Kullanıcı Tamam'a tıkladıysa yapılacak işlemler
    MessageBox.Show("İşlem Onaylandı!");
}
else
{
   // Kullanıcı İptal'e tıkladıysa yapılacak işlemler
   MessageBox.Show("İşlem İptal Edildi!");
}

Evet sevgili Webkolog.net okurları, bu yazımızda C# .NET Framework 4 ile Form kullanımını ve formlar arası etkileşimi kapsamlı bir şekilde ele aldık. Formlar, Windows Forms uygulamalarının temel yapı taşıdır ve kullanıcı arayüzünü oluşturmak için vazgeçilmezdir. Bu makalede ele aldığımız konular, formların özelliklerini, olaylarını, formlar arası iletişimi ve özel diyalog kutuları oluşturmayı içermektedir. Umarım bu bilgiler, 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'u takipte kalın!

Hepinize bol kodlu günler dilerim!

0 yorum:

Yorum Gönder