Görsel Programlama (Visual Programming) 2.Hafta 2016-2017 Bahar Dönemi Class Yapısı ve Form 1Muhammer İLKUÇAR, MAKÜ-2015 BURDUR
Class - Obje Nesne (Nesne tabanlı programlama) İnsan ırkının ortak özelliklerini oluşturan insan sınıfı Name (adı) Özellikler (properties) Kilosu Boyu Ten Rengi Saç tipi Saç rengi Göz rengi Events (Olaylar) Metodlar(methods) Konuşma() Yürüme () Ağlama () Gülme () Zıplama () 2Muhammer İLKUÇAR, MAKÜ-2011 BURDUR
Class Yapısı Örnek Araba sınıfı (Class) Name (adı) : araba Propertie s(özellik) Methods (Fonksiyon) Events( Olaylar) Markası Hızı Vites Tekerlek Renk Hızlanma () Vites Değiştirme() Durma () 3Muhammer İLKUÇAR, MAKÜ-2011 BURDUR
Form1 Class Name (adı) : Form1 Properties (Özellik) Text KeyPreview Width Height WindowState StartPosition Events (Olaylar) OnClick Load Clsoing Closed KeyDown KeyPress KeyUp Methods (Fonksiyon) Close() Focus() FindForm() Contains() namespace WindowsFormsApp1 public partial class Form1 : Form public Form1() InitializeComponent();... 4Muhammer İLKUÇAR, MAKÜ-2011 BURDUR
Visual Studio Ekranı Yeni proje Oluşturmak için : File-New-Project (Ctrl+Shit+N ) 5
Visual Studio Ekranı Design Sekmesi için Shit+F7 6
Visual Studio Ekranı Form1 class ı Form class ından türetilmiştir. Constructure fonksiyonu Form1() InitialComponenet() fonksiyonunu çağırır 7
Visual Studio Ekranı 8
Visual Studio Ekranı 1- Toolbox 2- Components 3- Properties mönüsü 4-Mönü tutturucu 5-Mönü seçimi 6- seçili olan nesne ve soy ağacı 7-özellik -olay 8- özelik ve değeri 9
Visual Studio Ekranı 10
Visual Studio Ekranı 11
Visual Studio Ekranı Solution Explorer üzerinde projenin üzerine sağ klikleyip açılan mönüden Properties seçeneği ile çağrılır 12
Visual Studio Ekranı 13
Form Özellikleri FORM Nesnesi 14
Form Özellikleri Formun Text özelliği Left Height Top Icon Kontrol Butonları Border Width 15
Form Özellikleri Formun (Class ın) değişken adı Açıldığında seçili olacak buton Form nesneler sığmaz ise kaydırma çubuğu gelmesin Otomatik olarak boyutlandırılmayacak Formun zemin rengi Formun zemininde olacak resim Resmin durumu ESC tuşuna basılınca otomatik kliklenecek buton Sağ klikleyince açılan mönü Kontrol butonlarının görünüp görünmemesi Font Font rengi 16
Form Özellikleri form1.formborderstyle = FormBorderStyle.FixedDialog; Form olaylarına öncelik verilmesi (true ise) Maximize butonu Minimize Butonu Transparanlık oranı Iconun görünüp görünmemesi Windows un görev çubuğunda görünmesi 17
Form Özellikleri Formun genişlik ve yüksekliği (with, height) Bütün bunların hepsi KOD ile de yapılabilir. Formun Başlığı Formun en üstte olması 18
Form Olayları 19
Yeni Form (calss) Ekleme 20
Yeni Form (calss) Ekleme namespace WindowsFormsApplication8 public partial class Form2 : Form public Form2() InitializeComponent(); Form1 deki Button1 e Klikleyince Form2 çağırması için; private void button1_click(object sender, EventArgs e) Form2 f = new Form2(); f.show( ); // f.showdialog(); //diyalog penceresi olarak göster 21
Aynı Formun Bir Kez Açılması ÖNCE SONRA Form2 f = null; private void button1_click(object sender, EventArgs e) f = new Form2(); f.show( ); Form2 bir çok kez çağrılır Form2 f = null; private void button1_click(object sender, EventArgs e) if (f == null f.isdisposed) f = new Form2(); f.show( ); Form2 bir kez çağrılır 22
Formu Bir Panel İçine Çağırma private void button2_click(object sender, EventArgs e) Form2 f = new Form2(); Panel1 splitcontainer1.panel2.controls.clear(); f.dock = DockStyle.Fill; f.toplevel = false; f.parent = splitcontainer1.panel2; f.show(); SplitContainer 23
MIDI Form Form1.isMdiContainer=true; // Olmalı private void button1_click(object sender, EventArgs e) Form2 f = new Form2(); f.mdiparent = this; f.show(); MdiParent MdiChild 24
Formlar arası bilgi alışverişi public partial class Form1 : Form public string kullanici_adi; private void button1_click(object sender, EventArgs e) kullanici_adi = textbox1.text; Form2 f = new Form2(); f.show(); public partial class Form2 : Form private void Form2_Load(object sender, EventArgs e) Form1 f = new Form1(); this.text= f.kullanici_adi; 25 public erişim iznine sahip kullanici_adi değişkenine Form2 den ulaşılması
Formlar arası bilgi alışverişi public partial class Form1 : Form public static string kullanici_adi; private void button1_click(object sender, EventArgs e) kullanici_adi = textbox1.text; Form2 f = new Form2(); f.show(); public partial class Form2 : Form private void Form2_Load(object sender, EventArgs e) this.text= Form1.kullanici_adi; 26 static değişkenler nesne belleğe oluşturmadan (new) direkt nesne ismi ile kullanılabilirler.
Formlar arası bilgi alışverişi private void button1_click(object sender, EventArgs e) Form1 f = new Form(); f.show(this); private void button1_click(object sender, EventArgs e) Form4 form = this.owner as Form4; form.label4.text = textbox1.text; this.close(); 27
Örnek : Visual Studio Ekranı Nesne Özellik Açıklama Label1-label4 Text= Adı Soyadı Etiketler textbox1 Edit edilebilir Adı Soyadı textbox2 Edit edilebilir Aylık mesai saati textbox3 Edit edilebilir 1 saatlik ücret textbox4 ReadOnly=true Toplam değer button1 &Hesapla Hesaplama işlemi button2 Çı&kış ESC ve klikleyince çıkış 28
Visual Studio Ekranı Accept Button: Form açıldığında seçili gelecek buton Cancel Button : ESC tuşuna basılınca kliklenecek buton Formun; StartPositon -> ScreenCenter WindowState -> Normal (default değer) 29
Nesneye Olayına Fonksiyon bağlama private void button1_click (object sender, EventArgs e) Nesne Olayı(Event) double mesai_saati = Convert.ToDouble(textBox2.Text); double saat_ucreti = Convert.ToDouble(textBox3.Text); double toplam = mesai_saati * saat_ucreti; textbox4.text = toplam.tostring(); private void InitializeComponent() //içine otomatik olarak aşağıdaki gibi eklenir... this.button1.click += new System.EventHandler ( this.button1_click ); 30
Soru ve Görüşleriniz? 31
ÖDEV Aşğıdaki şekildeki gibi; TextBox1, TextBox2, TextBox3 nesnelerine girilecek kenar uzunluklarına göre üçgenin çeşidini (EŞKENAR, İKİZKENAR, ÇEŞİTKENAR) Butona Klikleyince Label de gösteren programı yazınız? 32