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.
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:
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.
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.
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 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 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.
| Ö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ı |
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:
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.
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:
gibi farklı pencereler oluşturulabilir.
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. |
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.
| 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.
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.
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.
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:
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.
Şimdi Visual Studio kullanarak ilk Windows Forms projemizi oluşturalım.
Bu örnekte Windows Forms App (.NET Framework) proje şablonunu kullanacağız.
Ö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.
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.
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.
Windows Forms Designer, form üzerindeki görsel kontrolleri yerleştirmemizi ve düzenlememizi sağlayan tasarım ortamıdır.
Bu ekran üzerinde:
Ö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.
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 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 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 dosyası, forma ait resim, simge ve benzeri kaynakların saklanmasında kullanılabilir.
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.
Ş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.
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.
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
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!");
}
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.
Windows Forms uygulamalarında da Console derslerinde öğrendiğimiz C# programlama yapıları kullanılmaya devam eder.
Örneğin:
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.
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:
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.
Aşağıdaki soruları cevaplayarak öğrendiklerimizi tekrar edelim.
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.
Toplam 22 Makale
Lütfen yorumlarınızda saygılı, yapıcı ve anlaşılır bir dil kullanın.
Küfür, hakaret ya da spam içerikler onaylanmaz.