PROGRAMLAMA DİLLERİNE GİRİŞ Ders 9: Genel Kontroller (1) Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği Genel Kontroller • Bu derste Araç Kutusunda (Toolbox) bulunan Genel Kontroller (Common Controls) sekmesi altında yer alan sınıflar işlenecektir. • Bir Windows formuna eklenebilecek nesneler ile ilgili sınıflar hakkında detaylı bilgiyi http://msdn.microsoft.com/trtr/library/system.windows.forms.aspx adresinde bulabilirsiniz. – NOT: aspx’ten önce sınıfın adını yazarsanız doğrudan o sınıf ile ilgili sayfaya gidebilirsiniz: http://msdn.microsoft.com/trtr/library/system.windows.forms.button.aspx (bu sayfalarda sınıfın yöntemleri, özellikleri ve olayları hakkında bilgiler yer almaktadır) Metin Kutusu (TextBox) • Metin kutusu kullanıcının programa değer girmesi, dosyadan okunan veya program tarafından üretilen değerlerin görüntülenmesi için kullanılır. • Bu değerler Text özelliğinde saklanır. • Metin kutusunun rengi BackColor özelliği ile, içindeki yazının rengi ise ForeColor özelliği ile değiştirilebilir. • Eğer birden çok satır gösterilecekse MultiLine özelliği True olmalıdır. • Yazıtipi değişimi için Font özelliği kullanılır: – Program çalışırken yazıtipinin Name, Size, Bold, Italic, .. gibi özelliklerine erişilebilir (string a = textBox1.Font.Name;) – Fakat bu özellikler ReadOnly oldukları için değiştirilemezler (textBox1.Font.Size = 12; hata verir). Yazıtipini değiştirmek için aşağıdaki gibi bir kod kullanılabilir: textBox1.Font = new Font("Calibri", 12, FontStyle.Bold); Kalıplı Metin Kutusu (MaskedTextBox) • Bu kontrolün Metin Kutusu kontrolünden farkı Mask özelliği sayesinde belirli bir kalıba göre girdi kabul etmesidir. • Tarih, zaman, telefon numarası gibi biçimi önceden belli olan nümerik değerlerin girişi için kullanılır. Düğme (Button) • Genellikle kullanıcının bir işlemi başlatması için tıkladığı kontroldür. • Düğmenin en çok kullanılan olayı fare ile tek tıklama (Click) olayıdır. • Düğmenin üzerindeki yazı Text özelliği ile değiştirilir. • Düğmenin rengi BackColor özelliği ile, üzerindeki yazının rengi ise ForeColor özelliği ile değiştirilebilir. • Komut düğmesinin üzerinde yazı yerine bir resim gösterilmesi istenirse BackgroundImage özelliği kullanılabilir. Etiket (Label) • Etiketler genellikle bir metin kutusunun solunda yer alır ve yanındaki metin kutusunda görüntülenen değerin (yada o metin kutusuna girilecek olan değerin) ne olacağını (ad, soyad, adres …) belirler. • Etiketin yazısının değiştirilmesi de metin kutuları ve düğmelerde olduğu gibi Text özelliği ile yapılır. Bağlı Etiket (LinkLabel) • Tıklandığında bir web sayfasını yada bir mail adresini açan etikettir. • Varsayılan olayı olan LinkClicked olayına System.Diagnostics.Process.Start ile istenilen URL verilir: .Start("http://altanmesut.trakya.edu.tr"); .Start("mailto:altanmesut@trakya.edu.tr"); Onay Kutusu (CheckBox) ve Seçim Düğmesi (RadioButton) • Kullanıcının fare yardımı ile birden çok seçenek arasından seçim (seçim düğmesi ile) ya da seçimler (onay kutusu ile) yapmasını sağlayan kontrollerdir. • Yapılan seçimler Checked özelliği üzerinden kontrol edilir (Seçili ise True, değilse False). – Onay kutuları Checked özelliği dışında CheckState özelliğine de sahiptir. Bu özellik; Unchecked (0), Checked (1) ve Indeterminate (2) olmak üzere 3 faklı değer alabilir. Indeterminate (2) özelliği ancak program kodu ile atanabilir, kullanıcı tıklama ile bu değeri atayamaz. • İkisi arasındaki en büyük fark: – Bir onay kutusunun değerinin değişmesi form üzerindeki diğer onay kutularını etkilemez. – Seçim düğmelerinin bir tanesinin tıklanması o düğmenin değerini True yaparken, form üzerindeki daha önce seçilerek True yapılmış diğer seçim düğmesinin değeri kendiliğinden False olur. Not: • Containers altında yer alan GroupBox, Panel gibi bileşenlerle birbiri ile ilgili olan seçim düğmeleri ve onay kutuları bir araya getirilip gruplandırılabilir. • Bir container içinde yer alan bir seçim düğmesi tıklandığında sadece o container içinde daha önce değeri True olan bir seçim düğmesi varsa o düğme etkilenir. Form üzerinde veya başka container’lardaki değeri True olan diğer seçim düğmeleri etkilenmez. Liste Kutusu (ListBox) • Bir dizinin elemanlarının gösterilmesi, ve eğer gerekiyorsa bir yada birkaç tanesinin seçilmesi için kullanılan bileşendir. • Kullanıcının çoklu seçim yapabilmesi için SelectionMode özelliğinin MultiSimple yada MultiExtended yapılması gereklidir. – Simple’da sadece tıklamayla, Extended’ta ise Ctrl tuşu ile birlikte tıklamayla çoklu seçim yapılır. • Liste Kutusuna elemanlar Items.Add özelliği ile eklenir Items.Remove özelliği ile çıkarılır. – listBox1.Items.Add("Ahmet"); – listBox1.Items.Remove("Ahmet"); Birleşik Giriş Kutusu (ComboBox) • Metin Kutusu ile Liste Kutusunun birleşimidir. • Form üzerinde tek satırlık bir metin kutusu kadar yer kaplar. Sağ tarafındaki düğmeye tıklanırsa liste kutusu aşağıya doğru açılır. • Listede yer alan değerler haricinde bir değer girilmesi mümkündür. • DropDownStyle özelliği ile kullanım şekli ayarlanabilir: – DropDown: Hem metin kutusu hem de Liste kutusu beraber kullanımı (varsayılan [default] durum) – Simple: Sadece metin kutusu kullanımı – DropDownList: Sadece liste kutusu kullanımı Onay Kutulu Liste Kutusu (CheckedListBox) • Liste kutusundan farkı; tüm elemanların yanında birer onay kutusunun görüntülenmesidir. • NOT: ListBox, ComboBox ve CheckedListBox içindeki elemanların sıralı olarak görüntülenmesi isteniyorsa hepsinde olan Sorted özelliği True yapılabilir. Liste Görünümü (ListView) ve Ağaç Görünümü (TreeView) • Kapsadıkları elemanların ağaç görünümünde ve liste görünümünde gösterilmesini sağlayan kontrollerdir. • ListView kontrolünün View özelliği ile görüntüleme şekli değiştirilebilir (alt alta, yan yana, … Windows Gezgini’ndekine benzer şekilde) • TreeView kontrolünde elemanlar düğümlerde (Nodes) saklanır. Root Node, Parent Node ve Child Node kavramlarını “Veri Yapıları” dersinde ağaçlar konusunda öğreneceksiniz. Resim Kutusu (PictureBox) • Bilgisayardaki veya internetteki bir resmi göstermek için kullanılır. • Image özelliği kullanılarak istenilen resim seçilebilir. – Çalışma zamanında (run-time) ImageLocation özelliğine veya Load yöntemine istenilen resmin yolu (URL’si veya path’i) verilebilir: pictureBox1.Load("c:/users/pc/desktop/resim.jpg"); • SizeMode özelliği ile görüntünün boyutu resim kutusunun boyutundan farklı olduğu durumlarda nasıl gösterileceği ayarlanır: – Normal, Zoom, AutoSize, CenterImage, StretchImage • Form ve Komut Düğmesi gibi bazı kontrollerde bulunan BackgroundImage özelliği resim kutusunda da vardır. – BackgroundImage ile resim yüklerseniz, SizeMode yerine BackgroundImageLayout kullanmalısınız.