PROGRAMLAMA DİLLERİNE GİRİŞ Ders 8: Windows Formları Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği Windows Formlar Projesi Başlatma 2 1 3 4 Kodu gösterir Tasarım ekranını gösterir Projedeki dosyaları gösteren bölüm Tasarım ekranı Forma eklenebilecek kontrollerin bulunduğu araç kutusu Nesnelerin özelliklerinin değiştirildiği bölüm Olay Yönlendirmeli (Event Driven) Dil Nedir? • Programın akışının; fare tıklaması, klavyeden bir tuşa basılması, bir ağ üzerinden ya da başka bir programdan bir mesaj alınması gibi olaylar tarafından belirlendiği programlama türüdür. • Windows pencereleri üzerinde çalışan bir program geliştirildiğinde, bu program olay yönlendirmeli olarak çalışacaktır. Konsol ekranında çalışan programlar gibi, kullanıcıdan belirli bir noktada bir girdi beklemeyecektir. • Kullanıcı pencere (Form) üzerinde yer alan herhangi bir nesne ile etkileşimde bulunabilir. Programda bu etkileşimler (olaylar) gerçekleştiğinde yapılması gereken işlemler kodlanmalıdır. Kontroller (Controls) • Araç kutusundaki kontroller aslında birer sınıftır. • Örneğin araç kutusunda TextBox kontrolü seçilerek Form üzerine bir metin kutusu yerleştirildiğinde, TextBox sınıfından textBox1 isminde bir nesne yaratılmış olur (bu isim daha sonra name özelliği ile değiştirilebilir). • Formun kendisi de Form sınıfından türetilmiş Form1 adında bir sınıftır. public partial class Form1 : Form Özellikler (Properties) • Bir kontrolün birçok özelliği vardır. Kontrol seçildikten sonra sağ tarafta yer alan Properties sekmesinden kontrolün özelliklerinin değerleri değiştirilebilir. • Örneğin textBox1 metin kutusunun Text özelliğine bir değer girilirse, aslında textBox1 nesnesinin string türünde olan Text değişkenine ilk değer ataması yapılmış olur. Program başlatıldığında, textBox1 metin kutusunda girilmiş olan bu değer görüntülenecektir. • Kullanıcı textBox1’de yer alan değeri klavye yardımı ile değiştirirse textBox1.Text değişkenine program çalışırken değer atanmış olur. Bu değişkene kod ile değer atamak, veya değişkenin değerini başka bir değişkene atamak için: textBox1.Text = "Trakya Üniversitesi"; string str = textBox1.Text; TextBox1.Text değeri str değişkenine atanır Özellikler … devam Kategoriye göre listeleme • Properties sekmesindeki özellikler hem alfabetik sırada hem de kategorilerine göre sınıflandırılarak listelenebilir. • Location ve Size gibi bazı özellikler tüm nesnelerde yer alır. Bu özellikler nesnenin form üzerindeki konumunu ve büyüklüğünü belirlemek için kullanılır. • NOT: kod ile nesnenin özelliklerini belirlerken button1.Location.X = 10; değil button1.Left = 10; kullanmalıyız. Alfabetik sırada listeleme Yöntemler (Methods) • Yöntemler bir sınıfın fonksiyonları gibi düşünülebilir. • Her sınıfın kendine has yöntemleri vardır. • Örneğin birçok nesne ile kullanılan Focus yöntemi o nesneye odaklanmak için kullanılır. textBox1.Focus() Yöntem TextBox1 metin kutusuna odaklanılır (seçilir) textBox1.Focused Özellik TextBox1 metin kutusunun seçili olup olmadığını true yada false olarak döndürür. Bu şekilde odaklanmaya çalışıldığında hata verir. Yöntemler … devam • Fonksiyonların parametre alabilmesi gibi yöntemler de parametre alabilir. • Örneğin SetBounds yöntemi bir nesnenin konumunu ve büyüklüğünü değiştirmek için kullanılır. x, y, width, height olmak üzere 4 parametre alır. • Aşağıdaki satır yazıldığında button1 nesnesinin soldan mesafesi 10, yukarıdan mesafesi 10, genişliği 100, yüksekliği de 20 piksel olarak değiştirilmiş olur: Olaylar (Events) • Olaylar genellikle bir işlemin başlatılması (tetiklenmesi) için kullanılırlar. • Mouse ile bir nesne üzerine tıklamak o nesnenin Click olayının tetiklenmesini sağlar. Bir komut düğmesine tıklanınca yapılacak işlemi, o komut düğmesinin Click yordamına yazmamız gerekir. – Örneğin Slayt 4’te yer alan button1_Click yordamı, button1 komut düğmesi tıklandığında yapılacak işlemin (faktöriyel hesabı) tanımlanması için kullanılır. Olaylar … devam • Bir nesne üzerine çift-tıklama yapıldığı anda o nesne ile ilgili varsayılan olayın kodunun yazılması için kod görünümüne geçilir. Varsayılan olaylardan bazıları: – Form için: Load (Form1_Load) • Form yüklendiği anda tetiklenir – Komut düğmesi için: Click (Button1_Click) • Komut düğmesi üzerine mouse ile tıklandığı anda tetiklenir – Metin kutusu için: TextChanged (TextBox1_TextChanged) • Metin kutusuna bir karakter girildiği anda tetiklenir Olaylar … devam • Varsayılan olay haricinde bir olay için kod yazılmak isteniyorsa Properties sekmesinde sağ üstte yer alan Events butonuna tıklanarak listeden istenilen olay seçilir. • Bu listede istenirse o olayın ismi de değiştirilebilir (Örneğin Click yerine Tıkla yazabilirsiniz). Ödev • Bir metin kutusu ve birçok komut düğmesi kullanarak yandaki gibi bir hesap makinesi programı yazın. NOT • C# dilinde birçok kontrol ve bu kontrollere ait birçok özellik, yöntem ve olay mevcuttur. • Bu derste bunlardan çok sık kullanılan küçük bir bölümü gösterilecektir. • Tüm kontrollere ait tüm özellik, yöntem ve olaylarını ezbere bilmenize gerek yoktur.