İÇ İNDEK İLER
• WINDOWS TABANLI PROGRAMLAMA
• Formlar
• Projeye Yeni Form Eklemek
• Kod Yazarak Form Eklemek
HEDEFLER
• Bu üniteyi çalıştıktan sonra;
• Form tasarlarken dikkat edilecek faktörleri öğrenebilecek,
• Studio.NET tasarım ortamında projeye yeni bir form
ekleyebilecek,
• Windows uygulamasında
istenilen formun başlangıç ekranı olarak gelmesini
sağlayabileceksiniz.
ÜNİTE
2
PROGRAMLAMA
NESNE TABANLI
PROGRAMLAMA II
Okt. Mustafa AKBUĞA
GİRİŞ
Windows Forms uygulamaları, kullanıcıya hitap eden görsel arayüze sahip etkileşimli programlardır. NET sınıf kütüphanesi sayesinde Windows formlarına yönelik programlar yazmak oldukça kolaylaşmıştır. Form dediğimiz nesneler, Windows tabanlı programlarda sıkça gördüğümüz arabirimlerdir. Hatta Windows işletim sisteminde açılan her pencere birer formdur diyebiliriz.
Windows Forms uygulamaları, Console uygulamalarından farklı olarak program çalışmaya başladığında kodlar çalışmaya başlar. Kodların çalışması bitince uygulamadan hemen çıkılmaz. Programın çalışmasıyla ortaya çıkan aktif form bellekte sürekli saklanır. Form üzerindeki kontrollerin meydana getirdikleri (Çift tıklama, Yazı yazma, seçim yapma vb.) olaylar programın çalışma düzenini belirler.
Formun kapatılmasını sağlayan metotlar çalıştırılmadıkça program çalışmaya devam eder.
Windows formlarına ilişkin sınıflar System. Windows. Forms isim alanında (namespace) yer alır. Bu sınıflardan yaygın olanı Form sınıfıdır. Form sınıfı program çalıştırıldığında ekranda boş bir pencerenin gösterilmesi için gereken özellikleri tanımlar. Formlar üzerine kontroller eklenerek tasarımlar yapılır. Form ve kontrollerin birçok özellik ve olayları bulunur. Bu özellik ve olayların bir proje çerçevesinde düzenlenmesiyle Windows uygulamaları geliştirilir.
Bu bölümde, Form sınıfından yeni bir form nesnesi oluşturup bu formlar arasında nasıl geçiş yapılması gerektiği anlatılacaktır.
WİNDOWS TABANLI PROGRAMLAMA
Programcılar Studio.NET ile Windows uygulaması geliştirirken kullanıcı arabirimi ve kod dosyası olmak üzere iki ayrı alanda çalışma yaparlar. Windows Form projesi ilk olarak Form1.cs [Design] ve Form1.cs olmak üzere iki ayrı dosya olarak başlar. Programcı projeye yeni formlar ve ToolBox panelinden yeni kontroller ekleyerek ilgili nesnelerin özellik ve olaylarını düzenler.
Kullanıcı arabirimi, uygulamalar ile kullanıcılar arasında etkileşim sağlar.
Formlar (pencereler) Windows uygulamalarının en temel elemanlarıdır.Bu nedenle etkili bir tasarım gerektirir. Kullanıcı arabirimi tasarlarken birinci öncelik
uygulamanın kullanıcılar tarafından kolayca kullanılmasıdır. Bilinçsiz bir tasarım kullanıcıların programı verimli bir şekilde kullanmasını engeller.
Formlar (Pencereler)
Form nesneleri ve form üzerinde kullanılan diğer nesneler (Label, Button vb.) System.Windows.Forms sınıfından üretilir. Formlar, görünüm özellikleri, pencere stili değiştirilerek ve üzerine kontroller eklenerek özelleştirilir. Özelleştirilmiş formlar bilgisayara *.cs uzantısı ile kaydedilir.
Projeye ikinci bir form eklendiğinde
aktif kullanılan formu işaret etmek
için “this” anahtar sözcüğü kullanılır.
Kullanıcı arabirimi mümkün olduğunca basit ve anlaşılır olmalıdır.
Çok önemli ya da sıklıkla kullanılan kontroller formun en üstünde yer almalıdır.
Birbiriyle alakalı bilgileri gösteren kontroller bir grup içinde ele alınmalıdır.
Uygulamalarda arka plan rengi olarak yumuşak renkler tercih edilmelidir.
Kullanılan renkler okumayı ve fark etmeyi kolaylaştıracak şekilde seçilmelidir.
Yazı tipleri kolay okunan tipler arasından seçilmelidir.
Program içerisinde resimlerin gereksiz kullanımından kaçınılmalıdır.
Projeye Yeni Form eklemek
Windows uygulamaları, kullanıcı ile iletişimi Form nesneleri ile sağlar.
Program içindeki bütün nesnelerin bir form üzerinde bulunması, kullanıcının gerekli olan bileşenleri bulmasını zorlaştırır. Bu yüzden aynı konuyla ilgili olan nesneler birer form üzerinde toplanır. Ayrıca birden fazla form nesnesi kullanmak, uygulamaları zenginleştirir. Şimdi bir Windows projesine yeni bir form nasıl eklenir adımlar hâlinde gösterelim;
1.Adım: Solution Explorer panelinden projeye sağ tıklanarak ya da Project menüsünden Add Windows Form komutu verilir (Şekil 2.1‐ Şekil 2.2).
2. Adım: Şekil 2.3’te gösterildiği sıra ile Add New Item penceresinden – Windows Form ögesi seçilir ve bir isim verilerek (Form2.cs) form projeye eklenir. Bu eklenen Form ögesine name özelliğinden başka hatırlatıcı isimlerde verilebilir. Fakat name özelliğindeki değişiklikler form eklenirken en başta yapılmalı sonradan
değiştirilmemelidir. Sonradan yapılacak değişiklikler nesneyle ilgili önceden eklenmiş kodlarda temsil sorununu ortaya çıkarır. Bu sorunu gidermek için bütün kodlardaki nesne isimi yeni duruma uyarlanmalıdır.
Bir formun çalışma
anında gizlenmesi gerekirse “this.
Hide();” metodu kullanılabilir.
Şekil 2.1. Solution Explorer panelinden yeni bir form ekleme işlemi
Şekil 2.2. Project Menüsünden yeni bir form ekleme işlemi
3. Adım: Form nesneleri, Form sınıfından türemiştir. Dolayısıyla projeye yeni bir Form ekleme işleminin gerçekleşmesi için Form sınıfından yeni bir nesnenin aşağıdaki kod yardımıyla oluşturulması gerekmektedir.
Form2‘yi açtığımız
anda ana formu seçilemez hâle getirmek için this.
Enabled = false;
komutu kullanılır.
Şekil 2.3. Add New Item iletişim penceresi
Şekil 2.4. Tasarım alanına eklenmiş Form2 görüntüsü
4. Adım: Yeni oluşturulan formların gösterilmesi, formun Show ve ShowDialog metotlarıyla sağlanır. Show metodu yeni eklenen formu gösterirken diğer formalara geçişe izin verirken, ShowDialog metodu form gösterildikten sonra, kapanana kadar diğer formlara geçiş izni vermez. Aşağıda kullanımları gösterilen Visual C# kodlarının çalışması için mutlaka bir kontrol olayı içerisine yazılması gerekmektedir.
Şimdi Visual C#’ dilinde yeni bir form nasıl oluşturulur bir uygulama içerisinde gösterelim.
Örnek Uygulama: Bu örnekte iki adet form bulunmaktadır. Bunlardan biri şifreyle giriş işlemi için kullanılırken diğeri Form giriş işleminin başarıyla gerçekleştiği mesajını vermektedir.
Adım 1: Örnek uygulama projesi için başlat menüsündan Visual Studio 2013 simgesine tıklayarak Studio.NET yazılımını başlatın. File Menüsünden New>Project komutu vererek açılan iletişim formundan Programlama dili olarak Visual C#
programlama dilini seçin.Uygulama türü olarak WindowsForm Application ve dosya adı olarak WindowsFormsApplication2 yazarak projeyi kaydedin (Şekil 2.5).
Şekil 2.5. Studio. NET Windows Form uygulaması tasarım ekranı Adım 2: Projeye bir adet Form eklenmiştir, bu form tasarım ekranının orta kısmından tasarım modunda görülebilir. Formun başlığında Form1 yazan yeri
“Kullanıcı Girişi” olarak değiştirin. Bunun için orta kısımda bulunan formu tıklayarak seçin ve daha sonra sağ taraftaki properties alanında Text özelliğini Şekilde 2.6’da gösterildiği şekilde değiştirin.
Şekil 2.6. Form1 penceresinin Text özelliğinin değiştirilmesi
Adım 3: Giriş formuna ToolBox panelinden iki adet textBox, label ve butonu sürükle bırak yöntemiyle Şekil 2.7’de gösterildiği gibi Form1 üzerine yerleştirin.
Çalışma anında kod
ile üretilmiş yeni formlar üzerinde tasarım yapılamaz.
Fakat tasarımı yapılmış bir formdan mevcut
özellikler
aktarılabilir.
Şekil 2.7. Form1 tasarım alanına kontrollerin yerleştirilmesi
Adım 4: Form üzerine taşınan, Buton, Label ve TextBox’ları mouse ile seçerek Şekil 2.8’de gösterildiği gibi Properties alanından özelliklerini ayarlayın. Bu işlemleri yaparken Properties üzerinde birçok seçenek olduğu görülecektir. Bu seçenekler seçilen nesnenin özelliklerine göre Studio.NET tarafından dinamik olarak ekrana getirilir.
Şekil 2.8. Form1 penceresinin tasarım özelliklerinin değiştirilmesi Adım 4: Form1 tasarlandığına göre Solution Explorer panelinden projeye sağ tıklayarak veya Project menüsünden Add Windows Form komutunu seçerek projeye Form2’yi ekleyin (Şekil 2.9).
Şekil 2.9. Tasarım alanındaki form2’nin yeni eklenmiş görüntüsü
Adım 5: ToolBox panelinden 1 adet label ve butonu sürükle bırak yöntemiyle Şekil 2.10’da gösterildiği gibi Form2 üzerine yerleştirin. Label kontrolünün text özelliğini şekilde gösterildiği gibi değiştirin.
Şekil 2.10. Form2 penceresinin tasarım özelliklerinin değiştirilmesi
Adım 6: Form2 üzerindeki Butonu mouse ile seçerek Şekil 2.10’da gösterildiği gibi Properties panelinden renk ve text özelliklerini değiştirin.
Adım 7: Projenin tasarımı tamamlandıktan sonra Programın kod bölümünü geçin.
Bunun için ilk önce Form1 üzerindeki Giriş butonuna çift tıklanarak açılan Kod alanına Şekil 2.11’de gösterilen kodları yazın.
Tasarım alanına
eklenmiş yeni formların kod alanında ana formla
bağlantısı yapılmaz ise yeni formlar
ekrana gelmeyecektir.
Şekil 2.11. Form1 üzerindeki Button1’in Click olayına kodların eklenmesi Adım 7: Şekil 1.11’de gösterilen Kod alanındaki if komutunun içerisinde Kullanıcı Adı ve şifresi kontrol yapılmaktadır. Kullanıcının textBox alanına gireceği bilgilerle,
“kullanıcıAdi” ve “sifre” değişkenlerindeki bilgilerin karşılaştırılması için Form1 sınıfı içinde önceden değişken tanımı yaparak aşağıdaki kodlar rogram içerisine yazılmalıdır.
Adım 8: Form1 üzerindeki Çıkış butonuna çift tıklanarak açılan Kod alanına aşağıdaki kodları yazılmalıdır.
Adım 9: Form2 üzerindeki Çıkış butonuna çift tıklanarak açılan Kod alanına aşağıdaki kodları yazılmalıdır.
Yukarıdaki adımlar halinde teker teker eklenen Visual C# kodları Şekil 2.12 ve Şekil 2.14’te Form1.cs ve Form2.‘nin tüm kodlarını kapsayacak şekilde
gösterilmiştir.
Form1.cs
Şekil 2.12. From1’in kod ekranı
Adım 10: Kod ve Tasarımı bölümleri tamalanan uygulama Debug>Start Debugging ya da Standart araç çubuğu üzerinden Şekil 2.13’te gösterildiği gibi çalıştırılabilir.
Şekil 2.13. Windows Form uygulamalarının çalıştırılması
Aktif çalışan bir Form ukapatmak için” this. Close()”
metodu kullanılır.
Şekil 2.14. From2’in kod ekranı
Şekil 2.15. Programa ve doğru bilgilerin girilmesi sonucu oluşan ekran görüntüsü
Şekil 2.16. Programa hatalı bilgiler girilmesi sonucu oluşan ekran görüntüsü
Adım 11: Program çalıştığında Şekil 2.15’teki gibi doğru giriş bilgileri girilince Form2 açılarak Giriş işlemi başarılı mesajı verecektir. Şekil 2.16’da gösterilen kullanıcı adı ve şifre girildiğinde ise bilgiler kabul edilmeyerek Şifre hatalı mesajı verip Form2 ekrana hiç gelmeyecektir.
Bir formun hem tasarım hem de kod
alanında özelliklerinin değiştirilmesi durumunda kod
alanındaki değişiklikler geçerli
olacaktır.
Kod Yazarak Form Ekleme
Örnek uygulamada olduğu gibi Project menüsünden komut verilerek Form oluşturulabildiği gibi Kod yazarak da form hazırlanabilir. Bunun için Form1 içerisine Toolbox panelinden Şekil 2.16’da gösterildiği gibi Button kontrolü ekleyerek özelliklerini değiştirin. Button nesnesi üzerine çift tıklayarak Şekil 2.17’de gösterilen kodları yazın.
Şekil 2.16. Programa hatalı bilgiler girilmesi sonucu oluşan ekran görüntüsü
Şekil 2.17. Programa hatalı bilgiler girilmesi sonucu oluşan ekran görüntüsü
Form Şekil 2.18’de gösterildiği gibi ekrana gelecektir.
Şekil 2.18. Programa hatalı bilgiler girilmesi sonucu oluşan ekran görüntüsü Yeni eklenen form tasarım alanında gözükmediğinden üzerine kontrol eklenemez. Bu durumda Project Menüsünden Add Windows Form komutuyla önce tasarım alanına From2 eklenir. Sonra Form2 kodla oluştrulmuş gibi tasarlanarak Şekil 2.19‘da gösterilen kodla her iki Formun bağlantısı yapılır. Böylece Form2‘de yapılan tasarım, kodla eklenen form için de geçerlilik kazanacaktır.
Şekil 2.19. Form1 üzerindeki Button1 kontrolunun Click olayındaki yeni kodlar
Şekil 2.20. Tasarım alanına Project menüsünden eklenen Form2’nin tasarım görünümü
Şekil 2.19’da gösterilen kodların yazılması sonrası uygulama F5’kısayolu ile tekrar çalıştırıldığında önce Form1 ekrana gelecektir. “Yeni Form Oluştur”
butonuna basıldığında ise Form2 yerine kodla oluşturulan Form Şekil 2.21’de gösterildiği gibi ekrana gelecektir.
Şekil 2.21. Tasarım alanına eklenen Form2 ‘den kodla türetilen ” Yeni Form”’un ekran görüntüsü
Windows uygulamaları çalışmaya başladığında ilk olarak Form1 ekrana gelir.
İstenirse Form1 yerine başka bir formla da uygulama başlatılabilir. Bu işlem Solution Explorer penceresinde yer alan Program. cs dosyası ile sağlanır. Şekil 2.22’de işaretle gösterilen yere Form2 yazıldığında uygulama artık Form2 ile başlayacaktır.
Şekil 2.22. Tasarım alanına eklenen Form2 ‘den kodla türetilen ” Yeni Form”’un ekran görüntüsü
Öz et
•Programcılar Studio.NET ile Windows uygulaması geliştirirken kullanıcı arabirimi ve Kod dosyası olmak üzere iki ayrı alanda çalışma yaparlar.
Windows Form projesi ilk olarak Form1.cs [Design] ve Form1.cs olmak üzere iki ayrı dosya olarak başlar. Programcı projeye yeni formlar ve ToolBox panelinden yeni kontroller ekleyerek ilgili nesnelerin özellik ve olaylarını düzenler.
•Windows Form uygulamaları, Console uygulamalarından farklı olarak program çalışmaya başladığında kodlar çalışmaya başlar. Kodların çalışması bitince uygulamadan hemen çıkılmaz. Programın çalışmasıyla ortaya çıkan aktif form bellekte sürekli saklanır. Form üzerindeki kontrollerin meydana getirdikleri (Çift tıklama, Yazı yazma, seçim yapma vb.) olaylar programın çalışma düzenini belirler. Formun kapatılmasını sağlayan metotlar çalıştırılmadıkça program çalışmaya devam eder.
•Kullanıcı arabirimi, uygulamalar ile kullanıcılar arasında etkileşim sağlar.
Formlar (pencereler) Windows uygulamalarının en temel elemanlarıdır. Bu nedenle etkili bir tasarım gerektirir.
•From nesneleri ve form üzerinde kullanılan diğer nesneler (Label, Button vb.) System.Windows.Form sınıfından üretilir. Formlar, görünüm özellikleri, pencere stili değiştirilerek ve üzerine kontroller eklenerek özelleştirilir.
Özelleştirilmiş formlar bilgisayara *.cs uzantısı ile kaydedilir.
•Geliştirilen uygulamaların kullanıcı tarafından beğenilmesi için kullanıcı arabirimi mümkün olduğunca basit ve anlaşılır olmalıdır. Çok önemli ya da sıklıkla kullanılan kontroller formun en üstünde yer almalıdır. Birbiriyle alakalı bilgileri gösteren kontroller bir grup içinde ele alınmalıdır.
Uygulamalarda arka plan rengi olarak yumuşak renkler tercih
edilmelidir.Kullanılan Renkler okumayı ve fark etmeyi kolaylaştıracak şekilde seçilmelidir. Yazı tiplerini kolay okunan tipler olarak seçilmelidir.
•Windows uygulamaları, kullanıcı ile iletişimi Form nesneleri ile sağlar.
Program içindeki bütün nesnelerin bir form üzerinde bulunması, kullanıcının gerekli olan bileşenleri bulmasını zorlaştırır. Bu yüzden aynı konuyla ilgili olan nesneler birer form üzerinde toplanır. Ayrıca birden fazla form nesnesi kullanmak, uygulamaları zenginleştirir.
•Bir windows Form uygulamasına ikinci bir form eklemek için Solution Explorer panelinden projeye sağ tıklanarak ya da Project menüsünden Add Windows Form komutu verilir. Add New Item penceresinden – Windows Form ögesi seçilir ve bir isim verilerek (Form2.cs) form projeye eklenir.
•Yeni oluşturulan formların gösterilmesi, formun Show ve ShowDialog metotlarıyla sağlanır. Show metodu yeni eklenen formu gösterirken diğer formlara geçişe izin verirken, ShowDialog metodu form gösterildikten sonra, kapanana kadar diğer formlara geçişe izin vermez. Yeni eklenen Form2 (Form2 yeniform = new Form2(); yeniform.ShowDialog(); ) kodlarıyla form1'e bağlanır.
Değerlendirme sorularını sistemde ilgili ünite başlığı altında yer
alan “Bölüm Sonu Testi” bölümünde etkileşimli olarak cevaplayabilirsiniz.
DEĞERLENDİRME SORULARI
1. Aşağıdakilerden hangisi formları özelleştirilirken dikkat edilmesi gereken faktörlerden biridir?
a) Kullanıcı arabirimi dikkat çekici renklere sahip olmalıdır.
b) Çok önemli olan kontroller en altta yer almalıdır.
c) Yazı tipleri elyazı tipinde seçilmelidir.
d) Program içinde yer alan bütün kontrollerin resim özelliği kullanılmalıdır.
e) Birbiriyle alakalı kontroller bir gurup içinde yer almalıdır.
2. Studio.NET ortamında bir projeye aşağıdakilerden hangisi yeni bir form ekler?
a) Project>Add Class b) Project>Add new Item c) BUILD>Add
d) Project>Add Windows Form e) BUILD>Start Debugging
3. Aşağıdakilerden hangisi Form nesnesinden yeni bir form türetmekte kullanılır?
a) Form yeni=new Form();
b) Form yeni=this Form();
c) Form yeni= new Form[];
d) Form yeni=new Form;
e) Yeni form=new Yeni;
4. Aşağıdakilerden hangisi bir forma başlık vermek için kullanılan bir özelliktir?
a) Text b) label c) ForeColor d) Tag e) Size
a) this.Close();
b) this.Show();
c) Application.Exit();
d) ShowDialog();
e) New();
6. Aşağıdakilerden hangisi aktif olan bir formu kapatmak için kullanılır?
a) this. Close();
b) this. Show();
c) Clear();
d) ShowDialog();
e) Form. Exit();
7. Aşağıdakilerden hangisi bir form yüklendiğinde kodların onunla bereaber çalışmasını sağlayan olaydır?
a) Form1_Load b) Form1_Click c) Form1_Enter d) Form1_DoubleClick e) Form1_FormClosed
8. Aşağıdakilerden hangisi Windows uygulamalarını çalıştırmak için kullanılmaz?
a) Start Debugging
b) Start Without Debugging c) F5
d) Ctrl+F5 e) Built Solution
9. Seçeneklerden hangisi kod yazarak form hazırlamak için kullanılamaz?
a) Text b) Width c) Height d) Show e) TabIndex
10. Windows uygulamaları çalışmaya başladığında Form2 penceresinin ilk olarak ekrana gelmesi için düzenlenmesi gereken dosya aşağıdakilerden hangisidir?
a) Form1.cs b) Form2.cs c) App. config d) Program. cs e) From1.resx
Cevap Anahtarı 1.E,2.D,3.B,4.A,5.C,6.A,7.A,8.E,9.E,10.D
AKBUĞA. Mustafa, (2011), Atatürk Üniversitesi, Uzaktan Eğitim Merkezi, Nesne Tabanlı programa‐I Ders Notları
ALGAN, Sefer, (2010), Her Yönüyle C#, İstanbul: Pusula Yayıncılık, AKTAŞ, Volkan, (2013), Her Yönüyle C# 5.0, KODLAB, İstanbul.
CLARK, Dan, (2013), Your visual blueprint for building.NET application, 2nd Edition, New York Hungry Minds,.
SCHILDT, Herbert, (2002), The Complete Reference C#, çev. Duygu Arbatlı Yağcı, İstanbul Alfa Basım Yayım Dağıtım,
SHARP, John, (2002), Microsoft Visual C#.NET, çev. Mert Derman, Ankara Arkadaş Yayınevi
YANIK, Memik, (2004), Microsoft Visual c#.NET, 1.Baskı, Ankara Seçkin Yayıncılık, AYRILMAZ, Emre(2008), C# 3.0 ile Programlama Temelleri, İstanbul Bilge Adam
Yayınları,