-1-1. Label Nesnesi : LABEL BUTTON - TEXTBOX Orijinal değişken adı label1 olarak gelecektir. İsterseniz bu ismi değiştirebilirsiniz. Nereden ev Nasıl mı? Label1 i seç Properities penceresinden Name özelliğini bul ve karşısında Label1 yazısını göreceksin (bu label objesinin adıdır) buraya bir isim yaz. Burayı boş bırakamazsınız. Daha önce (Bölüm-1) belirtilen değişken ismi verme kurallarına göre yeni bir isim vermelisiniz. Tüm objeler normal birer değişken gibidir. Artık program içerisinde bu label ile ilgili tüm işlemler bu isim üzerinden gerçekleştirilecektir. Bu yüzden dikkatli olmalısınız!!!. Label nesnesi Text özelliğinde bilgi tutmaya yarayan bir etikettir. label1.text = MalınFiyatını Giriniz : ; // label1 ismi string s; s = label1.text ; // şeklinde label1 deki değeri s değişkenine aktarabilirsiniz. Label daki değer her zaman string bir değerdir. Buraya bilgi koyarken mutalaka string değer olmasına dikkat ediniz. Yine buradaki değeri alırken de string bir değer olduğunu aklınızdan çıkartmayınız. int x = 45 ; label1.text = i.tostring( ); veya int i ; i = Convert. ToInt32 ( label1.text ) ; şeklinde tip dönüşümleri yapmalısınız. Label1 içerisindeki yazıları hizalamak için aşağıdaki şekilde görülen seçenekten yararlanılır. Bu şekil tüm objelerde içerik hizalaması için geçerlidir. Şeklin Sol Üst köşesindeki buton basılı ve bununla ilgili olarak TopLeft yazısı mevcuttur. Bunun anlamı label içerisindeki yazılar sol üstten başlanarak yazılacaktır. Buradaki doku farklı hizalama şeklinden istediğinizi seçerek yazılarınızı hizalayabilirsiniz.
-2- Özellikler penceresi seçimi Olay (events) penceresi seçimi Label1 nesnesinin bazı özellikleri : Name : Objenin değişken adı (şu anda label1) Autosize: İçindeki bilgiye göre otomatik boyutlandırma olup olamayacağı false ise boyutlar sabit kalıp yazı sığmaz ise ikinci satır olarak yazılır BackColor: Zemin rengi vermek için BorderStyle : Dış çerçeve şekli ContextMenu : Pop-Up menü çağırma-ilişkilendirme Enabled: Bu özelliği false yapılırsa pasif yapılır FlatStyle : FlatStyle özelliği değiştirilerek farklı görüntüler elde edilebilir(flat,popup,standart,system) Font: Fon ile içindeki yazının fontu ve büyüklüğü değiştirilebilir ForeColor: Bu özellik ile Yazının rengi değiştirilebilir Image : Resim koyma ImageIndex : ImageListin hangi image kullanacaksa ImageList : Image list seçimi Text : Text özelliği içinde gösterilecek değer. İster buradan değiştiriniz isterseniz kod ile değiştirebilirsiniz. TextAlign: Bu özellik ile (Yukarıda bahsedildi) yazının konumunu ayarlayabilirsiniz Visible : Visible özelliğini false yaparak görünmez yapabilirsiniz veya tru yaparak görünür yapabilirsiniz Burada gördüğümüz özelliklerin pek çoğu tüm objelerde ortak özelliklerdir.örneğin: Name, Font, Image, Imagelist, Enable, Visible, Size vb. gibi. Özelliklerin içeriklerini kendiniz uygulama yaparken değişik türlerini deneyip kendinizi geliştirebilirsiniz. Yine bir ojenin bazı özelliklerini properties penceresinden değiştirebileceğiniz gibi burada yapabileceklerinizin tümünü kod olarak da yazabilirsiniz. Kod yazma size esneklik kazandıracaktır.
-3- private void Form1_Load(object sender, System.EventArgs e) label1.flatstyle=flatstyle.popup ; label1.textalign=contentalignment.middleright; label1.text=" Microsoft Visual C#.NET" ; label1.borderstyle=borderstyle.fixed3d; label1.image=image.fromfile("c:\\calisma\\icon.bmp"); label1.imagealign=contentalignment.middleleft;
-4-2. LinkLabel nesnesi Bun obje label objesinden farklı olarak bir web linki şeklinde görünmektedir. Bu sebepten renk seçenekleri biraz farklıdır.. Aktif link Rengi (ActiveLinkColor), Ziyaret edilmiş link rengi (VisitedLinkColor), pasifleştirilmiş link rengi (DisabledLinkColor), Link Rengi (LinkColor) gibi farklı işlemleri farklı renklerde gösterebilirsiniz. Diğer tüm özellikleri label ile hemen hemen aynı. Bilgiler Text özelliğinde string olarak tutulur. linklabel1.text= this.text; private void Form1_Load(object sender, System.EventArgs e) linklabel1.text = "http://www.sdu.edu.tr"; linklabel1.linkcolor = Color.Black; linklabel1.visitedlinkcolor = Color.Blue; linklabel1.activelinkcolor = Color.Bisque; linklabel1.flatstyle = FlatStyle.System; linklabel1.borderstyle = BorderStyle.FixedSingle; linklabel1.links.add(0,21,"http://www.sdu.edu.tr"); linklabel1.links.add(başlangıç pozisyonu, karakter sayısı,"web adresi"); linklabel1 in Click olayına (yani üzerinde klikleyince internet Explorer programını çalıştırıp http://www.maku.edu.tr adresine gitmesi için) aşağıdaki kodu yazmalıyız. private void linklabel1_linkclicked(object sender,linklabellinkclickedeventargs e) System.Diagnostics.Process.Start(e.Link.LinkData.ToString());
-5-3. Button nesnesi Buton nesnesi görsel programlama dillerinin vazgeçilemez nesnelerinden birisidir. C# dilinde bir adet buton nesnesi vardır. Ancak buton nesnesinin FlatStyle özelliğini değiştirerek farklı biçimlerde butonlar elde edebilirsiniz. (değiştirerek deneyiniz: Flat, Popup, standard, System). Button nesnesini programlarımızda genellikle klikleyince bir şeyler yaptırmak için kullanırız. Siz bu genellemeye uymak zorunda değilsiniz. Button nesnesinin Image özelliğini kullanarak buton üzerine resim yerleştirebilirsiniz. Yine Imagelist özelliğini kullanarak buton üzerini yazı ile birlikte bir de küçük resim (icon) yerleştirebilirsiniz. Ancak butonun FlatStyle özelliğinin System olmaması gerekiyor. Bazı işlemleri kod ile de yapabiliriz Aşağıdaki örneği inceleyiniz: private void Form1_Load(object sender, System.EventArgs e) ToolTip ipucu=new ToolTip(); button1.image = Image.FromFile("C:\\CALISMA\\gone.bmp"); button1.text="popup Stili" ; button1.imagealign = ContentAlignment.MiddleRight; button1.textalign = ContentAlignment.MiddleLeft; button1.flatstyle = FlatStyle.Popup; ipucu.settooltip(this.button1," Mesajımsın..");
-6- ToolTip ipucu=new ToolTip(); Komutuyla ToolTip türünde ipucu adında bir değişken oluşturulmuştur. ToolTip ( ) nesnesi bir nesne üzerinde Mouse ile beklediğimizde küçük bir ipucu bilgilendirme- vermeye yarayan bir objedir. ipucu.settooltip(this.button1," Mesajımsın.."); komutu ile de tooltip nesnesini button1 nesnemiz için kullanmış oluyoruz. button1.image = Image.FromFile("C:\\CALISMA\\gone.bmp"); buton üzerinde gone.bmp dosyası yüklenmiştir. button1.text="popup Stili" ; // buton üzerinde görünecek yazı button1.imagealign = ContentAlignment.MiddleRight; button1.textalign = ContentAlignment.MiddleLeft; Buton üzerinde resmin ve Yazının nasıl yerleştirileceği. ContentAlignment.MiddleRight : Resim dikey olarak ortada, yatay olarak sağa yanaşık olacak şekilde yerleşecek. ContentAlignment.MiddleLeft : Yazı dikey olarak ortada, yatay olarak sola yanaşık olacak button1.flatstyle = FlatStyle.Popup ; // burada butonun tipi belirtilmiştir( popup yerine style,system,flat gelebilirdi). button1.flatstyle = FlatStyle. deyip bekleyince bize seçenekler gelecektir orada istediğimiz buton türünü seçebiliriz. button1.anchor Bu özellik tasarım anında veya çalışma anında form ile birlikte objenin de büyümesi veya küçülmesini sağlar. Form sola veya yukarı veya sağa doğru büyütüldüğü veya küçültüldüğü zaman nesne de otomatik olarak formla orantılı olarak büyür veya küçülür. Seçeneklerden Hepsi boş bırakılırsa obje formdaki pozisyonunu korur. Yani ortada ise form büyüyünce de ortada küçülünce de ortada olacaktır.
-7-4. TextBox Nesnesi Veri girişi işlemleri için kullanılan bir nesnedir. Bu nesne uygulamalarımızda belki de en çok kullanacağımız nesnedir. TextBox nesnesinin birçok özelliği vardır. TextBox nesnesinin içindeki değer onun Text özelliğinde saklıdır. O halde klavyeden girdiğimiz bilgileri TextBox nesnesinin text özelliğinden (textbox1.text) elde edebiliriz ve buradaki değer string bir değerdir. Aritmetiksel işlemler yapılacağında mutlaka tip dönüşümü yapılmayı unutmayınız. string ili, ilce = " Fethiye "; ili = textbox1.text ; // TextBox1 deki değer adi değişkenine alınmıştır textbox2.text = ilce ; // ilce değişkenindeki değer ise textbox2 ye aktarılmıştır int x, y = 8; x = Convert.ToInt32(textBox1.Text) ; // TextBox1 deki değer sayıya çevrilip x e aktarılmıştır y +=x ; textbox2.text = y.tostring( ) ; // y değişkenindeki sayısal değer stringe çevrilip TextBox2 e aktarılmıştır float x, y = 4.5f; x = Convert.ToSingle(textBox1.Text) ; y = y + x ; textbox2.text = y.tostring() ;
-8- double z, r = 5.6; z = Convert.ToDouble(textBox1.Text) ; r = r * z; textbox2.text = r.tostring() ; DateTime t1,t2; t1 = Convert.ToDateTime(textBox1.Text) ; t2 = Convert.ToDateTime(textBox2.Text) ; textbox3.text= (t1-t2).tostring(); Tarih farkı Gün. Saat. Dakika.Saniye cinsinden çıkmaktadır. 27-26 = 1 gün Burada 8-7 = 1 ay 7. ay Temmuz ayı 31 gün olduğundan fark 31+1 = 32 gün textbox1.maxlength textbox1.maxlength= 20 ; // 20 karakter girilebilsin girilebilecek karakter sayısını belirler ( en çok 32767 karakter girilebilir ve varsayılan değeri budur) textbox1.readonly textbox1.readonly =!(textbox1.readonly); // ReaOnly özelliğini değiştir ReadOnly özelliği true veya False şeklindedir. True ise aadece okunabilir yani içine bilgi girilemez ve bilgi, aktarılamaz. textbox1.multiline
-9- textbox1.multiline = true; Birden çok satır girilebilme özelliği. False verilirse bir satırlık bir bilgi, True değeri verilirse birden çık satırlık bilgi girilebilir. Multiline özelliği true yapıldığında girilen bilgilerin tümünün TextBox da görülebilmesi için kaydırma çubukları olmalıdır. Bunun için ScrollBar özelliğinden yararlanılır. textbox1.scrollbars textbox1.scrollbars = ScrollBars.Both; // hem yatay hem de dikey kaydırma çubukları olacak ScrollBars.None - yok ScrollBars.Horizontal - yatay ScrollBars.Vertical - dikey ScrollBars.Both - yatay ve dikey textbox1.maxlength = 500; textbox1.multiline=true; textbox1.scrollbars =ScrollBars.Vertical;
-10- textbox1.lines [index] : textbox daki bilgiler satır satır bir dizide (Lines dizisi ) tutulmaktadır. İlk satır Lines dizisinin 0 indexinde son satır da lines dizisinin elaman sayısı -1 inci indexinde tutulmaktadır. int i=0; textbox1.multiline=true; textbox1.scrollbars =ScrollBars.Vertical; i = Convert.ToInt32(textBox2.Text); if ( i<= (textbox1.lines.length -1)) label5.text=textbox1.lines[i-1]; label4.text="şu anada : "+i.tostring()+ ". satır işleme alındı"; label1.text="satır Sayısı : "+(textbox1.lines.length).tostring(); textbox2.passwordchar textbox2.passwordchar = * ; TextBox ye girdiğim bilgilerin görüntüsü * şeklinde görünecektir. Dikkat sadece görüntüsü bu şekilde yine girilen değer neyse odur. private void Form2_Load(object sender, System.EventArgs e) textbox2.passwordchar='*' ; // char olduğu için tek tırnak textbox2.text=""; //başlangıçta boş gelmesi için
-11- textbox1.autosize TextBox in içindeki yazı kendisinden büyükse yazının bir kısmı görünmez. AutoSize özelliği true yapılırsa textboax yazının görünebileceği şekilde otomatik olarak büyüyecektir. textbox1.enaled TextBox ın etkisiz kalma veya etkili olma durumunu düzenler. Değeri true veya false olur. Normal değeri true dur yani textbox normal işlevini görür. False değeri verilirse textbox artık etkisizdir. Ayni hiçbir özelliği kullanılamaz. textbox2.enabled=false; // artık etkisiz textbox2.enabled=!( textbox2.enabled); // bir önceki durumunun tersi private void Form2_Load(object sender, System.EventArgs e) textbox1.enabled=false; textbox1.enabled=!(textbox2.enabled); Butona klikleyince textbox1.enabled özelliği true ize false olur false ise true olur textbox1.borderstyle TextBox in görüntüsünü değiştiren bir özelliktir. textbox2.borderstyle = BorderStyle.FixedSingle;
-12- Şeklinde düzenlenir. Diğer seçenekler aşağıda verilmiştir. textbox1.textlength TextBox içerisindeki bilginin kaç karakter olduğunu (uzunluğu) integer sayı olarak verir. private void button1_click_1(object sender, System.EventArgs e) int i, x = 0;; for( i=0 ; i<textbox1.textlength ; i++) if (textbox1.text[i].tostring()==" ") x++; label1.text = x.tostring(); TextBox içerisindeki boşluk karakterlerinin sayısını verir. Boşluk karakterlerini bir fazlası kelime sayısıdır. if (textbox1.text[i].tostring()==" ") yerine if (textbox1.text[i]==' ') yazabiliriz. Bu iki program kodu arasında ne fark var? ilkinde " " ifadesiyle karşılaştırma yapılmış " " ifadesi string bir ifadedir. textbox1.text[1] ise bir karakterlik(char) bir ifadedir dolayısıyla bu değer string tipe dönüştürülüp o şekilde karşılaştırma yapılmıştır. İkincisinde ise textbox1.text[1] ifadesinden elde edilecek karakteri ' ' karakter ifadesi ile karşılaştırma yapılmıştır. İpucu : char tipindeki değerler tek tırnak içerisinde belirtilir. string tipi ifadeler ise çift tırnak içerisinde belirtilir. char x ; string y ; x = 'a' ; // a değeri karakterdir y = "a" ; // a değeri 1 karakter uzunluğunda bir string ifadedir textbox1.focus
-13- İmleci (cursor) istenilen objeye konumlandırmak için kullanılır. textbox2.focus( ); ifadesiyle imleç nerede olursa olsun hemen TextBox2 ye konumlanır. Bu özellik Formun Load olayında (form ilk açılırken oluşan olay ) işlemektedir. Program çalıştığı anda imleç TabIndex i 0 olan obje hangisi ise ona konumlanacaktır. Normalde Tab tuşu ile imleci objeler üzerinde dolaştırabilirsiniz. Bu dolaşım ise objelerin TabIndex ine göre gidecektir. Her obje için TabIndex 0,1,2,.. şeklinde sıralanacaktır. TabStop özelliği true olmayan ojelere Tab tuşu ile imleç konumlanmaz. Tab tuşu ile erişmek istemediğimiz nesnelerin TabStop özelliğini false yapınız. Enable özelliği false olan veya gözükmeyen objelerde Focus işlemi gerçekleşmez. textbox1.canfocus Focus işleminin olup olmadığını bu özellik sayesinde öğrenebilirsiniz. private void button1_click_1(object sender, System.EventArgs e) textbox1.visible=false; private void button2_click(object sender, System.EventArgs e) if (textbox1.canfocus ==true) textbox1.focus(); else MessageBox.Show(this,"Konumlanamdı.."); textbox1.clear(): TextBox içerisindeki yazıyı temizler. textbox1.resettext(): TextBox içerisindeki yazıyı temizler. textbox1.textalign: TextBox içerisindeki yazıyı hizalamak için kullanılır. textbox1.textalign = HorizontalAlignment.Right; Yatayda olarak sağa dayalı olarak düzenler. Bunlardan başka : HorizontalAlignment.Right HorizontalAlignment.Left HorizontalAlignment.Center : sağa dayalı : sola dayalı : ortada