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/tr-tr/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/tr-tr/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.