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 edenSize
yapısı.Location
: Formun ekran üzerindeki konumunu temsil edenPoint
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:
using System.Windows.Forms;
using System.Drawing; // Color için
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Bilgisayar ekranının boyutlarını alma
int ekranGenisligi = SystemInformation.PrimaryMonitorSize.Width;
int ekranYuksekligi = SystemInformation.PrimaryMonitorSize.Height;
Console.WriteLine("Ekran Genişliği: " + ekranGenisligi);
Console.WriteLine("Ekran Yüksekliği: " + ekranYuksekligi);
// 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
}
// Kaynaklardan resim veya ayar alma örnekleri
private void LoadResourcesAndSettings()
{
// Resourcedan dosya alma (Properties/Resources.resx içinde tanımlı olmalı)
// Image myImage = Properties.Resources.button2;
// if (myImage != null) { /* Resimle ilgili işlem yap */ }
// Sabitlerden değişken alma (Properties/Settings.settings içinde tanımlı olmalı)
// string settingValue = Properties.Settings.Default.SettingName;
// Console.WriteLine("Ayar Değeri: " + settingValue);
}
}
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
veyaprotected internal
).
// A formundan B formunun içindeki textBox1 kontrolüne erişim (textBox1, B formunda protected internal olmalı)
// Varsayım: Form1 içinde bir textBox1 ve frmAppointment adında bir Form sınıfı var.
// Application.OpenForms koleksiyonu ile açık formlara erişilir.
public partial class FormA : Form
{
private void buttonAccessFormB_Click(object sender, EventArgs e)
{
// Form1 adında bir formun açık olduğunu ve içinde textBox1 adında bir kontrol olduğunu varsayalım
Form1 targetForm = Application.OpenForms["Form1"] as Form1;
if (targetForm != null)
{
// Eğer Form1'deki textBox1 protected internal ise erişilebilir.
// targetForm.textBox1.Text = "Veri Form A'dan geldi.";
MessageBox.Show("Form1'deki TextBox'a erişim denendi.");
}
else
{
MessageBox.Show("Form1 açık değil.");
}
}
}
- 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.
// B formunda public static bir değişken tanımlayalım
public partial class Form1 : Form
{
public static int degisken = 0; // Bu değişken diğer formlardan erişilebilir
public Form1()
{
InitializeComponent();
}
}
// A formundan B formundaki degisken değişkenine erişim
public partial class FormA : Form
{
private void buttonSetVariable_Click(object sender, EventArgs e)
{
Form1.degisken = 10; // Form1'deki statik değişkene değer atama
MessageBox.Show("Form1'deki değişkenin değeri 10 olarak ayarlandı.");
}
}
- Veri Gönderme ve Alma (Constructor ile): Bir formdan başka bir forma veri göndermek için, hedef formun kurucusuna (constructor) parametre ekleyebiliriz.
// A formundan B formuna veri gönderme
public partial class FormA : Form
{
private void buttonOpenFormB_Click(object sender, EventArgs e)
{
int gonderilecekVeri = 123;
Form2 frm = new Form2(gonderilecekVeri); // Form2'yi parametre ile aç
frm.Show();
}
}
// B formu (Form2)
public partial class Form2 : Form
{
private int alinanVeri;
public Form2(int _alinanVeri) // Kurucu metot, parametre alır
{
InitializeComponent();
alinanVeri = _alinanVeri; // Alınan veriyi değişkene ata
MessageBox.Show("Form2'ye gelen veri: " + alinanVeri.ToString());
}
}
Alt Form Oluşturma Metodu
Bir formu başka bir formun içinde veya diyalog olarak göstermek için, genellikle yardımcı bir metot tanımlayabiliriz. 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ç (ana formu kilitleyen)
}
// Örnek kullanım (ana formdan)
private void buttonOpenAltForm_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2(99); // Yeni bir Form2 örneği oluştur
AltFormAc(frm2, "Alt Form Başlığı"); // Yardımcı metot ile aç
}
Ö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):
public partial class ConfirmationForm : Form
{
public ConfirmationForm()
{
InitializeComponent();
// Form üzerinde bir "Tamam" ve "İptal" butonu olduğunu varsayalım
}
private void buttonOK_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK; // Tamam butonuna tıklandığında DialogResult'ı OK olarak ayarla
this.Close(); // Formu kapat
}
private void buttonCancel_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel; // İptal butonuna tıklandığında DialogResult'ı Cancel olarak ayarla
this.Close(); // Formu kapat
}
}
Ana Formda Kullanım:
public partial class MainForm : Form
{
private void buttonShowConfirmation_Click(object sender, EventArgs e)
{
ConfirmationForm frmCon = new ConfirmationForm(); // Diyalog formunu oluştur
// ShowDialog() metodu, diyalog kapatıldığında DialogResult değerini döndürür
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.net'i takipte kalın!
Hepinize verimli ve başarılı geliştirme süreçleri dilerim!
0 yorum:
Yorum Gönder