Windows Forms Nedir? C# ile Görsel Programlamaya Giriş
C# programlama dilini öğrenirken ilk uygulamalarımızı Console ekranında geliştirdik. Değişkenler, operatörler, koşul ifadeleri, döngüler ve diziler gibi temel programlama konularını Console uygulamaları üzerinde öğrendik.
Ancak günlük hayatta kullandığımız bilgisayar programlarının çoğu yalnızca metinlerden oluşan bir Console ekranına sahip değildir. Bu programlarda pencereler, butonlar, metin kutuları, seçim listeleri ve çeşitli görsel öğeler bulunur.
Örneğin bir hesap makinesi programında sayıları girmek için butonlar, sonuçları görüntülemek için bir ekran ve işlemleri gerçekleştirmek için farklı kontroller kullanılır.
C# programlama diliyle bu tür görsel masaüstü uygulamaları geliştirmek için kullanabileceğimiz teknolojilerden biri Windows Forms teknolojisidir.
Bu dersimizde Windows Forms'un ne olduğunu, Console uygulamalarından farklarını, temel kavramlarını ve Visual Studio üzerinde ilk Windows Forms projemizi nasıl oluşturacağımızı öğreneceğiz.
1. WINDOWS FORMS NEDİR?
Windows Forms (WinForms), Microsoft'un .NET platformu üzerinde Windows işletim sistemi için grafiksel kullanıcı arayüzüne sahip masaüstü uygulamaları geliştirmemizi sağlayan bir kullanıcı arayüzü teknolojisidir.
Windows Forms sayesinde C# programlama diliyle pencereler, butonlar, metin kutuları, listeler, menüler ve çeşitli görsel kontroller içeren uygulamalar geliştirebiliriz.
Örneğin aşağıdaki programları Windows Forms kullanarak hazırlayabiliriz:
- Hesap makinesi uygulaması
- Öğrenci not hesaplama programı
- Stok takip sistemi
- Kütüphane otomasyonu
- Personel takip programı
- Sınav sonuç hesaplama uygulaması
- Ürün satış ve sipariş programı
- Veritabanı bağlantılı masaüstü uygulamaları
Windows Forms uygulamalarında kullanıcı, programla yalnızca klavyeden komut yazarak değil; butonlara tıklayarak, metin kutularına bilgi girerek ve çeşitli seçenekleri işaretleyerek etkileşim kurabilir.
2. GUI (GRAFİKSEL KULLANICI ARAYÜZÜ) NEDİR?
GUI, İngilizce Graphical User Interface ifadesinin kısaltmasıdır. Türkçede Grafiksel Kullanıcı Arayüzü olarak adlandırılır.
Grafiksel kullanıcı arayüzü, kullanıcıların bir programla pencereler, simgeler, butonlar, menüler ve diğer görsel öğeler üzerinden etkileşim kurmasını sağlar.
Örneğin Windows işletim sistemindeki Dosya Gezgini, Hesap Makinesi ve Not Defteri gibi uygulamalar grafiksel kullanıcı arayüzüne sahiptir.
Windows Forms ile geliştirdiğimiz uygulamalar da GUI mantığıyla çalışır.
GRAFİKSEL KULLANICI ARAYÜZÜNÜN AVANTAJLARI
- Programların kullanımını kolaylaştırır.
- Kullanıcının komutları ezberlemesini gerektirmez.
- Bilgilerin daha düzenli görüntülenmesini sağlar.
- Fare ve klavye ile etkileşim kurulabilir.
- Farklı kontroller sayesinde kullanıcıdan kolayca veri alınabilir.
- Uygulamaların görsel olarak tasarlanmasına imkân verir.
3. CONSOLE VE WINDOWS FORMS ARASINDAKİ FARKLAR
C# ile geliştirdiğimiz Console ve Windows Forms uygulamaları aynı programlama dilini kullanabilir. Ancak kullanıcıyla etkileşim kurma yöntemleri farklıdır.
CONSOLE UYGULAMALARI
Console uygulamalarında kullanıcıyla etkileşim genellikle metin tabanlı bir ekran üzerinden gerçekleştirilir.
Örneğin kullanıcıdan isim almak için aşağıdaki kodları kullanabiliriz:
Console.Write("Adınızı giriniz: ");
string ad = Console.ReadLine();
Console.WriteLine("Merhaba " + ad);
Bu uygulamada kullanıcı ismini Console ekranına yazar ve Enter tuşuna basar. Program da girilen ismi ekranda görüntüler.
WINDOWS FORMS UYGULAMALARI
Windows Forms uygulamalarında ise kullanıcıdan bilgi almak için TextBox, bilgiyi görüntülemek için Label ve işlemi başlatmak için Button gibi kontroller kullanılabilir.
Örneğin form üzerinde textBox1, button1 ve label1 isimli kontroller bulunduğunu düşünelim.
Button kontrolünün Click olayına aşağıdaki kodları yazabiliriz:
private void button1_Click(object sender, EventArgs e)
{
string ad = textBox1.Text;
label1.Text = "Merhaba " + ad;
}
Bu uygulamada kullanıcı ismini TextBox içerisine yazar. Butona tıkladığında girilen isim Label üzerinde görüntülenir.
Görüldüğü gibi her iki uygulamada da C# kullanılır. Ancak Console uygulamasında metin tabanlı bir ekran, Windows Forms uygulamasında ise görsel kontroller kullanılır.
CONSOLE VE WINDOWS FORMS KARŞILAŞTIRMASI
| Özellik |
Console |
Windows Forms |
| Kullanıcı arayüzü |
Metin tabanlı |
Grafiksel |
| Veri girişi |
Genellikle klavye |
TextBox, ComboBox ve diğer kontroller |
| Veri görüntüleme |
Console ekranı |
Label, ListBox ve diğer kontroller |
| Buton kullanımı |
Standart Console arayüzünde yoktur |
Button kontrolü kullanılabilir |
| Görsel tasarım |
Sınırlıdır |
Form Designer ile yapılabilir |
| Kullanım alanı |
Komut satırı araçları ve temel uygulamalar |
Windows masaüstü uygulamaları |
4. WINDOWS FORMS UYGULAMALARININ ÇALIŞMA MANTIĞI
Console uygulamalarında komutlar çoğunlukla belirli bir sıra içerisinde çalıştırılır.
Windows Forms uygulamalarında ise programın önemli bir bölümü kullanıcı tarafından gerçekleştirilen işlemlere bağlı olarak çalışır.
Örneğin:
- Kullanıcı bir butona tıkladığında hesaplama yapılabilir.
- TextBox içerisine yazı yazıldığında bir işlem gerçekleştirilebilir.
- RadioButton seçildiğinde ilgili seçenek kontrol edilebilir.
- Form açıldığında başlangıç işlemleri yapılabilir.
- Bir seçim listesinde farklı seçenek seçildiğinde bilgiler güncellenebilir.
Bu çalışma yaklaşımına olay güdümlü programlama (Event-Driven Programming) adı verilir.
Windows Forms uygulamalarında olaylar, programın kullanıcı hareketlerine veya sistem tarafından gerçekleştirilen işlemlere tepki vermesini sağlar.
5. FORM NEDİR?
Form, Windows Forms uygulamalarında kullanıcı arayüzünün oluşturulduğu pencereyi temsil eder.
Bir Windows Forms projesi oluşturduğumuzda genellikle Form1 isimli bir form karşımıza çıkar.
Form üzerine Button, Label, TextBox, RadioButton ve benzeri kontroller ekleyerek uygulamamızın kullanıcı arayüzünü oluşturabiliriz.
Bir Windows Forms uygulamasında birden fazla form bulunabilir.
Örneğin bir öğrenci takip programında:
- Giriş Formu
- Ana Menü Formu
- Öğrenci Kayıt Formu
- Not Giriş Formu
- Raporlama Formu
gibi farklı pencereler oluşturulabilir.
FORMUN TEMEL ÖZELLİKLERİ
Formun görünümünü ve davranışını Özellikler (Properties) penceresinden değiştirebiliriz.
| Özellik |
Görevi |
| Name |
Formun kod içerisinde kullanılan adını belirler. |
| Text |
Formun başlık çubuğunda görüntülenen yazıyı belirler. |
| BackColor |
Formun arka plan rengini belirler. |
| Size |
Formun genişliğini ve yüksekliğini belirler. |
| StartPosition |
Formun ekranda açılacağı başlangıç konumunu belirler. |
| FormBorderStyle |
Formun kenarlık ve boyutlandırma davranışını belirler. |
| MaximizeBox |
Ekranı kaplama butonunun kullanılabilirliğini belirler. |
| MinimizeBox |
Simge durumuna küçültme butonunun kullanılabilirliğini belirler. |
6. CONTROL (KONTROL) NEDİR?
Control, Windows Forms uygulamalarında kullanıcı arayüzünü oluşturmak için kullanılan görsel bileşenlerin genel adıdır.
Form üzerine eklediğimiz Button, TextBox, Label ve RadioButton gibi öğeler birer kontroldür.
Her kontrolün kendine ait özellikleri, metotları ve olayları bulunabilir.
SIK KULLANILAN WINDOWS FORMS KONTROLLERİ
| Kontrol |
Görevi |
| Label |
Ekranda yazı görüntüler. |
| TextBox |
Kullanıcıdan metin girişi alır. |
| Button |
Tıklama yoluyla işlem başlatır. |
| RadioButton |
Bir grup içerisinden seçenek seçilmesini sağlar. |
| CheckBox |
İşaretlenebilir seçenek oluşturur. |
| ComboBox |
Açılır seçim listesi oluşturur. |
| ListBox |
Liste halinde veriler görüntüler. |
| PictureBox |
Resim görüntüler. |
Bu kontrolleri Visual Studio içerisindeki Araç Kutusu (Toolbox) bölümünden seçerek form üzerine ekleyebiliriz.
Kontrollerin ayrıntılı kullanımını sonraki derslerimizde ayrı ayrı inceleyeceğiz.
7. PROPERTY (ÖZELLİK) NEDİR?
Property, bir formun veya kontrolün görünümünü ve davranışını belirleyen özellikleri ifade eder.
Örneğin bir Button kontrolünün üzerinde yazan metni, arka plan rengini veya boyutunu değiştirmek için özelliklerinden yararlanabiliriz.
Visual Studio'da bu işlemleri genellikle Özellikler (Properties) penceresinden gerçekleştiririz.
NAME VE TEXT ARASINDAKİ FARK
Windows Forms uygulamalarında sık kullanılan iki özellik Name ve Text özellikleridir.
Name: Kontrolün kod içerisinde kullanılan adıdır.
Text: Kontrolün üzerinde veya içerisinde görüntülenen yazıyı belirler.
Örneğin bir Button kontrolünün özelliklerini aşağıdaki şekilde ayarlayabiliriz:
Name : button1
Text : Hesapla
Bu durumda butonun üzerinde Hesapla yazısı görüntülenir. Ancak C# kodlarında bu kontrolü button1 adıyla kullanabiliriz.
Örneğin:
button1.Text = "Sonucu Göster";
Bu kod, button1 isimli kontrolün üzerinde görüntülenen yazıyı değiştirir.
8. EVENT (OLAY) NEDİR?
Event, bir kontrol üzerinde veya uygulama içerisinde meydana gelen ve program tarafından karşılanabilen olayları ifade eder.
Örneğin bir Button kontrolüne tıklanması bir olaydır.
Windows Forms uygulamalarında sık kullanılan bazı olaylar şunlardır:
- Click: Kontrole tıklandığında gerçekleşir.
- TextChanged: Metin içeriği değiştiğinde gerçekleşir.
- Load: Form yüklenirken gerçekleşir.
- MouseEnter: Fare işaretçisi kontrolün üzerine geldiğinde gerçekleşir.
- MouseLeave: Fare işaretçisi kontrolün üzerinden ayrıldığında gerçekleşir.
- CheckedChanged: RadioButton veya CheckBox gibi kontrollerin işaretlenme durumu değiştiğinde gerçekleşir.
CLICK OLAYINA ÖRNEK
Form üzerine bir Button eklediğimizi düşünelim.
Button kontrolüne çift tıkladığımızda Visual Studio genellikle Click olayına ait bir metot oluşturur.
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Merhaba Windows Forms!");
}
Bu kod çalıştırıldığında kullanıcı butona tıklarsa ekranda Merhaba Windows Forms! mesajını içeren bir ileti kutusu açılır.
MessageBox.Show() metodu, kullanıcıya bir mesaj penceresi göstermek için kullanılır.
Olay metodunda bulunan sender parametresi olayı başlatan nesneyi, e parametresi ise olayla ilgili bilgileri temsil eder.
9. VISUAL STUDIO'DA WINDOWS FORMS PROJESİ NASIL OLUŞTURULUR?
Şimdi Visual Studio kullanarak ilk Windows Forms projemizi oluşturalım.
Bu örnekte Windows Forms App (.NET Framework) proje şablonunu kullanacağız.
ADIM 1: YENİ PROJE OLUŞTURMA
- Visual Studio'yu açalım.
- Yeni Proje Oluştur (Create a New Project) seçeneğine tıklayalım.
- Arama bölümüne Windows Forms yazalım.
- Programlama dili C# olan Windows Forms App (.NET Framework) şablonunu seçelim.
- İleri (Next) butonuna tıklayalım.
Önemli: Windows Forms App ile Windows Forms App (.NET Framework) şablonları aynı değildir. Derslerimizde .NET Framework altyapısını kullanacağımız için ilgili şablonu seçmeliyiz.
ADIM 2: PROJE ADINI BELİRLEME
Proje yapılandırma ekranında projemize bir isim verelim.
Örneğin:
Proje Adı: IlkWindowsForms
Çözüm Adı: IlkWindowsForms
Projenin kaydedileceği klasörü belirleyelim.
Ardından .NET Framework 4.7.2 sürümünü seçelim. Bu sürümün listede bulunması için ilgili hedefleme paketinin bilgisayarda kurulu olması gerekir.
Oluştur (Create) butonuna tıklayarak projemizi hazırlayalım.
ADIM 3: FORM TASARIM EKRANINI AÇMA
Projemiz oluşturulduğunda Visual Studio genellikle Form1 isimli bir form açar.
Form tasarım ekranı görünmüyorsa Çözüm Gezgini'nden Form1.cs dosyasına sağ tıklayıp Tasarımcıyı Görüntüle (View Designer) seçeneğini kullanabiliriz.
Klavye kısayolu:
Shift + F7
Bu ekranda formun boyutunu, rengini ve diğer özelliklerini değiştirebiliriz.
10. WINDOWS FORMS DESIGNER NEDİR?
Windows Forms Designer, form üzerindeki görsel kontrolleri yerleştirmemizi ve düzenlememizi sağlayan tasarım ortamıdır.
Bu ekran üzerinde:
- Formun boyutunu değiştirebiliriz.
- Formun arka plan rengini belirleyebiliriz.
- Araç Kutusu'ndan kontroller ekleyebiliriz.
- Kontrolleri sürükleyerek konumlandırabiliriz.
- Kontrollerin özelliklerini değiştirebiliriz.
- Kontrollere ait olay metotlarını oluşturabiliriz.
Örneğin bir Button kontrolünü Araç Kutusu'ndan sürükleyerek form üzerine bırakabiliriz.
Ardından Button kontrolünü seçip Özellikler penceresinden Text özelliğini değiştirebiliriz.
Bu işlemler sırasında Visual Studio gerekli tasarım kodlarının önemli bir bölümünü otomatik olarak oluşturur.
11. WINDOWS FORMS PROJESİNDEKİ TEMEL DOSYALAR
Bir Windows Forms projesi oluşturduğumuzda Çözüm Gezgini içerisinde çeşitli dosyalar bulunur.
Bu dosyaların görevlerini bilmek, projenin çalışma mantığını anlamamıza yardımcı olur.
FORM1.CS
Form1.cs dosyası, formumuza ait C# kodlarını yazdığımız dosyadır.
Örneğin Button kontrolünün Click olayında çalışacak kodları bu dosyada yazabiliriz.
FORM1.DESIGNER.CS
Form1.Designer.cs dosyası, form üzerindeki kontrollerin oluşturulması ve yerleştirilmesi için kullanılan tasarım kodlarını içerir.
Bu dosya Visual Studio tarafından otomatik olarak yönetilir.
Önemli: Yeni başlayan öğrencilerin Form1.Designer.cs dosyasındaki kodları doğrudan değiştirmesi önerilmez. Kontrollerin özelliklerini değiştirmek için öncelikle Form Designer ve Özellikler penceresi kullanılmalıdır.
FORM1.RESX
Form1.resx dosyası, forma ait resim, simge ve benzeri kaynakların saklanmasında kullanılabilir.
PROGRAM.CS
Program.cs dosyası, uygulamanın başlangıç kodlarını içerir.
.NET Framework ile oluşturulan tipik bir Windows Forms projesinde aşağıdaki kodlarla karşılaşabiliriz:
using System;
using System.Windows.Forms;
namespace IlkWindowsForms
{
internal static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
Bu kodda Main() metodu uygulamanın başlangıç noktasıdır.
Application.EnableVisualStyles(), desteklenen kontrollerin Windows görsel stillerinden yararlanmasını sağlar.
Application.SetCompatibleTextRenderingDefault(false), bazı kontrollerin metin oluşturma davranışı için varsayılan ayarı belirler.
Application.Run(new Form1()), Form1 isimli formu açarak uygulamanın mesaj döngüsünü başlatır.
Bu aşamada Program.cs dosyasındaki kodları değiştirmemize gerek yoktur.
12. İLK WINDOWS FORMS UYGULAMAMIZI HAZIRLAYALIM
Şimdi öğrendiklerimizi kullanarak basit bir Windows Forms uygulaması geliştirelim.
Uygulamanın amacı: Kullanıcı bir butona tıkladığında ekranda mesaj görüntülenmesini sağlamak.
ADIM 1: FORMUN ÖZELLİKLERİNİ AYARLAYALIM
Form tasarım ekranında boş bir alana tıklayarak formu seçelim.
Özellikler penceresinden aşağıdaki ayarları yapalım:
Text : İlk Windows Forms Uygulamam
Size : 600, 400
StartPosition : CenterScreen
BackColor : LightBlue
Bu ayarlar sayesinde formumuzun başlığı, boyutu, açılış konumu ve arka plan rengi değişecektir.
ADIM 2: FORMA BUTTON EKLEYELİM
Araç Kutusu'nu açalım ve Button kontrolünü form üzerine sürükleyelim.
Button kontrolünün özelliklerini aşağıdaki şekilde değiştirelim:
Name : button1
Text : Mesaj Göster
Size : 150, 50
ADIM 3: CLICK OLAYINI OLUŞTURALIM
Form üzerine eklediğimiz Button kontrolüne çift tıklayalım.
Visual Studio, Form1.cs dosyasında button1_Click isimli olay metodunu oluşturacaktır.
Bu metodun içerisine aşağıdaki kodu yazalım:
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Merhaba Windows Forms!");
}
ADIM 4: UYGULAMAYI ÇALIŞTIRALIM
Visual Studio'da F5 tuşuna basalım veya üst araç çubuğundaki Başlat butonuna tıklayalım.
Uygulamamız çalıştırıldığında hazırladığımız form açılacaktır.
Mesaj Göster butonuna tıkladığımızda ekranda Merhaba Windows Forms! mesajını içeren bir ileti kutusu görüntülenecektir.
Böylece ilk Windows Forms uygulamamızı hazırlamış olduk.
13. WINDOWS FORMS UYGULAMALARINDA C# KODLARI NASIL KULLANILIR?
Windows Forms uygulamalarında da Console derslerinde öğrendiğimiz C# programlama yapıları kullanılmaya devam eder.
Örneğin:
- Değişkenler
- Veri türleri
- Matematiksel operatörler
- if-else koşul ifadeleri
- switch-case yapıları
- for ve while döngüleri
- Diziler
- Metotlar
gibi konular Windows Forms uygulamalarında da kullanılabilir.
Örneğin iki sayıyı toplayan bir Windows Forms uygulamasında aşağıdaki C# kodlarını kullanabiliriz:
int sayi1 = 10;
int sayi2 = 20;
int toplam = sayi1 + sayi2;
MessageBox.Show(toplam.ToString());
Bu kodda iki sayı toplanır ve sonuç MessageBox içerisinde görüntülenir.
ToString() metodu, sayısal sonucu metin biçimine dönüştürmek için kullanılmıştır.
Görüldüğü gibi Console uygulamalarında öğrendiğimiz programlama bilgileri Windows Forms uygulamalarında da kullanılmaktadır.
Değişen temel nokta, kullanıcıyla etkileşim kurmak için grafiksel kontrollerden yararlanmamızdır.
14. WINDOWS FORMS UYGULAMALARININ AVANTAJLARI
Windows Forms, özellikle C# ile masaüstü uygulamaları geliştirmeye başlayan öğrenciler için anlaşılır ve kullanışlı bir teknolojidir.
Başlıca avantajları şunlardır:
- Visual Studio üzerinde sürükle-bırak yöntemiyle form tasarlanabilir.
- Button, Label ve TextBox gibi hazır kontroller kullanılabilir.
- C# programlama diliyle görsel uygulamalar geliştirilebilir.
- Olay güdümlü programlama mantığı öğrenilebilir.
- Veritabanı bağlantılı masaüstü programları hazırlanabilir.
- Hazırlanan uygulamalar uygun Windows bilgisayarlarda çalıştırılabilir.
Ancak Windows Forms'un Windows masaüstü uygulamaları geliştirmek için tasarlandığını unutmamalıyız. Web tarayıcısında çalışan uygulamalar veya farklı işletim sistemlerine yönelik uygulamalar geliştirmek için başka teknolojiler tercih edilebilir.
15. ÖĞRENDİKLERİMİZİ PEKİŞTİRELİM
Aşağıdaki soruları cevaplayarak öğrendiklerimizi tekrar edelim.
- Windows Forms nedir ve hangi amaçla kullanılır?
- GUI kavramının açılımı nedir?
- Console ve Windows Forms uygulamaları arasındaki temel fark nedir?
- Form nedir? Bir uygulamada birden fazla form bulunabilir mi?
- Control kavramı ne anlama gelir?
- Button kontrolünün Name ve Text özellikleri arasındaki fark nedir?
- Event kavramı nedir? Click olayına bir örnek veriniz.
- Visual Studio'da Windows Forms projesi oluşturmak için hangi proje şablonunu kullanabiliriz?
- Form1.cs ve Form1.Designer.cs dosyalarının görevleri nelerdir?
- MessageBox.Show() metodu ne işe yarar?
16. SONUÇ
Windows Forms, C# programlama diliyle Windows işletim sistemine yönelik grafiksel kullanıcı arayüzüne sahip masaüstü uygulamaları geliştirmemizi sağlayan bir teknolojidir.
Console uygulamalarında öğrendiğimiz değişkenler, koşul ifadeleri, döngüler ve diğer C# programlama yapıları Windows Forms uygulamalarında da kullanılmaya devam eder.
Windows Forms'un temel farkı, kullanıcıyla etkileşim kurmak için Button, TextBox, Label ve benzeri görsel kontroller kullanmasıdır.
Bu dersimizde Windows Forms'un çalışma mantığını, Form, Control, Property ve Event kavramlarını öğrendik. Ayrıca Visual Studio üzerinde ilk Windows Forms projemizi oluşturarak bir buton aracılığıyla mesaj görüntüledik.
Bir sonraki dersimizde Windows Forms uygulamalarında sık kullanılan kontrolleri ve bu kontrollerin temel özelliklerini daha ayrıntılı inceleyeceğiz.