*g56(/ - omerozcann.files.wordpress.com€¦ · 02'h/ 1(61( 7$%$1/, 352*5$0/$0$

80
GÖRSEL PROGRAMLAMA DERS NOTLARI ÖĞREN CĠN ĠN : ADI : SOYADI : NUMARASI :

Upload: others

Post on 19-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

  • GÖRSEL

    PROGRAMLAMA

    DERS NOTLARI

    ÖĞRENCĠNĠN :

    ADI :

    SOYADI :

    NUMARASI :

  • 1

    ĠÇĠNDEKĠLER MODÜL 1: NESNE TABANLI PROGRAMLAMAYA GĠRĠġ ............................. ............................... .................................... .....2

    A.PROGRAM KURULUMU ................................ ................................................................. ............................... ..........2 B.PROGRAMLAMA ORTAMI ................................ ............................... ............................... .................................. .......2

    1.Temel ĠĢlemler ...... ............................ ...................................... ................................ ............................ .............2 2.Arayüz ................ ....................................... ............................. ............................... ............................ .............3

    C.ĠSĠM UZAYLARI ........ ............................ ...................................... ................................ ............................ .............4 1.NameSpace .......... ............................ ...................................... ................................ ............................ .............4 2.Using Ġfadesi ......... ............................ ...................................... ................................ ............................ .............4 3.Nesne Ekleme ....... ............................ ...................................... ................................ ............................ .............4 5.Nesneye Kod Yazma ................................ ................................ ................................ ................................ .........4

    D.DEĞĠġKENLER VE VERĠ TÜRLERĠ ...................... ............................. ............................... ............................ .............4 1.DeğiĢken Tanım lama Kuralları ....................... ............................. ............................... ............................ .............4 2.Temel Veri Tür ler i .. .............................. ................................ .................................... ............................ .............4 3.DeğiĢken Tanım lama................................ ................................ ................................ ................................ .........5 4.Tip DönüĢümler i: ... ............................. ..................................... ................................ ............................ .............7

    E.OPERATÖRLER ......... ............................ ...................................... ................................ ............................ .............8 1.Ar itmet iksel Operatör ler ............................... ............................. ............................... ..................................... ....8 2.Atama Operatörü ... ............................. ..................................... ................................ ............................ .............9 3.Ar t ırma ve Azaltma Operatör ler i ........... ...................................... ............................... ............................ .............9

    MODÜL 2: NESNE TABANLI PROGRAMLAMADA KARAR VE DÖNGÜ YAPI LARI ............................. ................................... .... 10 A.ĠLĠġKĠSEL VE MANTI KSAL OPERATÖRLER ...................................... ................................ ............................ ........... 10

    1.ĠliĢkisel Operatör ler ................................ ................................................................. ............................... ........ 10 2.Mant ıksal Operatör ler ................................ ................................ ............................... ................................. ...... 10 3.Operatör Önceliği .. .............................. ................................ .................................... ............................ ........... 11

    B.ġART ĠFADELERĠ ...... ............................ ...................................... ................................ ............................ ........... 11 1.I f Ġfadesi .............. ............................. ...................................... ............................... ............................ ........... 11 2.Ġçi Ġçe I f Ġfadesi ..... ............................ ...................................... ................................ ............................ ........... 12 4.Switch Ġfadesi ....... ............................ ...................................... ................................ ............................ ........... 12

    C.DÖNGÜ YAPI LARI ..... ............................ ...................................... ................................ ............................ ........... 15 1.While Ġfadeler i ...... ............................ ...................................... ................................ ............................ ........... 15 2.For Ġfadeleri .......... ............................ ...................................... ................................ ............................ ........... 16 3.Do Ġfadeler i .......... ............................ ...................................... ................................ ............................ ........... 17 4.Break Ġfadeler i ...... ............................ ...................................... ................................ ............................ ........... 17

    D.DiYALOG KUTULARI .. .............................. ................................ .................................... ............................ ........... 18 1.MessageBox Kullanım ı ................................ ............................... ............................... .................................. ..... 18 2.I nputBox Kullanım ı ................................ ................................ .................................. .............................. ......... 19

    E.HATA AYI KLAMA ....... ............................ ...................................... ................................ ............................ ........... 19 1.Try-Catch Bloğu .... ............................ ...................................... ................................ ............................ ........... 19 2.Adım Adım Ġzleme . ............................... ................................ ................................... ............................. .......... 19

    MODÜL 3: NESNE TABANLI PROGRAMLAMADA WI NDOWS UYGULAMALARI ............................... ................................. ...... 20 A.WĠNDOWS FORMLAR ................................ ................................ .................................. .............................. ......... 20

    1.Windows Form Uygulaması OluĢturm a . ...................................... ................................ ............................ ........... 20 2.Windows Form Özellik ler i .............................. ............................. ............................... ...................................... . 20 3.Nesneler............... ............................. ...................................... ............................... ............................ ........... 22 } ........................... ..................................... ............................... ............................... .................................. ..... 37 4. Veri Tabanı ĠĢlem ler i ................................ ................................ ............................... ................................. ...... 38

  • 2

    MODÜL 1 : NESNE TABANLI PROGRAMLAMAYA GĠRĠġ

    Programın kodlanm ası sırasında bir program lam a dili kullanılır . Kullanılacak program lama dili program cı

    tarafından belir lenir. Biz derslerde Microsoft Visual Studio Express 2012 kullanacağız.

    A .PROGRAM KURULUMU

    ht tp: / / www.m icrosoft .com/ visualstudio/ tur# products/ visual-studio-express-products adresinde I ndir

    linki sonra Visual Studio Express 2012 baĢlığı alt ındaki Windows Masaüstü için Visual Studio 2012

    Express seçeneğine ait ġ im di Yükle linki çalıĢt ırılır . Web Plat form Installer programı „wdexpress_full.exe‟

    dosyasını bilgisayara inmeye baĢlar.

    ĠĢlem sonucunda bilgisayara yüklenen „wdexpress_full.exe‟ uygulam a dosyası çalıĢtır ılarak yükleme

    baĢlat ılır.

    Ön yüklem e bit t ikten sonra bilgisayarın yediden baĢlat ılması gerekecekt ir.

    Bilgisayar açıldıktan sonra, BaĢlat / Tüm Program lar/ Microsoft Visual Studio 2012 Express/ VS Express for

    Desktop yolunu seçerek yazılım baĢlat ılır.

    Program ilk kez baĢlat ıldığında 30 günlük deneme sürümü olduğunu belir ten bir pencere ile Product Key

    istenir . Register Online linki kullanılarak internet üzerinden açılan kayıt sayfasında e-posta adresi ve

    gerekli bilgiler gir ilerek görüntülenen Ģifre ilgili alana kopyalanarak onaylanır.

    NOT: Ġstenirse Product Key penceresi kapat ılarak 30 gün içinde daha sonra Help Register Product kom utu ile

    açılan pencere ile aynı iĢlem ler yapılabilir .

    B.PROGRAMLAMA ORTAMI

    Nesne tabanlı programlama yazılım ı ortamı, aynı zamanda grafiksel windows tabanlı uygulamalar oluĢturmak

    için iht iyaç duyulan her Ģeyi kapsar. Windows tabanlı uygulamanın forma dayalı kullanıcı arayüzü etkileĢim li

    olarak tasar lanabilir . Nesne tabanlı programlam a yazılım ı grafiksel uygulamanın iki görünüm ünü sağlar: Tasarım

    görünüm ü ve kod görünüm üdür.

    NOT: Nesne tabanlı program lama yazılım ı grafiksel uygulam alar için iki Ģablon sağlar: Windows Form

    Applicat ion Ģablonu ve WPF Applicat ion Ģablonudur. Birbir ine çok benzer bu iki Ģablondan WPF daha geliĢt ir ilm iĢ

    bir teknoloj i olduğu için birçok ek özellik ve kapasite sağlar.

    1 .Tem el ĠĢlem ler

    Program yüklendikten sonra BaĢlat / Tüm Program lar/ Microsoft Visual Studio 2012 Express/ VS Express for

    Desktop yolu seçilerek baĢlat ılır.

    Yeni bir uygulama açm a:

    Ġlk açılıĢ (Start Page) ekranında New Project veya File/ New Project kom utu çalıĢtır ılır .

    Açılan pencerede I nstalled Templates bölümünden Visual C# , sağ taraftan Windows Form Applicat ion

    seçilir ve alt tarafta bulunan Name bölümüne proje ism i yazılarak onaylanır .

    Var olan uygulamayı açm a:

    Ġlk açılıĢ (Start Page) ekranında Open Project veya File/ Open Project komutu çalıĢtır ılır .

    Açılan pencerede dosya seçilir .

    Uygulamayı kaydetme:

    File/ Save All kom utu çalıĢt ır ılır .

    Eğer ilk kez kaydediliyorsa ekrana Save Project penceresi gelecekt ir. Bu pencerede kayıt yer i belir lenir

    ve isteniyorsa uygulam a ism i değiĢt irilir .

    Uygulamayı çalıĢt ırm a:

    Debug/ Start Debugging kom utuyla, F5 tuĢuyla veya araç çubuğundan düğm esi ile çalıĢt ır ılır . Program

  • 3

    çalıĢm aya (eğer bir değiĢiklik yapılmadıysa) ilk oluĢturulan form ile baĢlar. AçılıĢ formunu değiĢt irm ek

    için Program.cs içinde: Applicat ion.Run(new form1( ) ) ; kodundaki form ism inin değiĢt ir ilm esi gerekir .

    2 .Ar ay ü z

    Toolbox(1) : Araç kutusu. (View m enüsünden açılır veya kapat ılır.)

    Form (2) : Tasarım alanı. Projede bir den fazla form kullanılabilir . Bunun için Solut ion Explorer panelinde proje

    adı üzerinde sağ tuĢ menüsünden Add/ New I tem penceresinden Windows Form seçilir .

    Solut ion Explorer(3) : Proje dosyalarının listelendiği sekm e. (View menüsünden açılır veya kapat ılır.)

    Propert ies(4) : Nesne özellikler inin listelendiği sekme. (View menüsünden açılır veya kapat ılır .)

    Her bir formun Design(5) ve Kod görünüm ler i(6) bulunur . Design görünümü Form 1.cs[ Design] projenin

    görüntülenen kısm ı, Kod görünümü Form 1.cs arka planda çalıĢan kodların bulunduğu kısım dır.

    BoĢ bir form a ait kod görünüm ü aĢağıdaki gibidir .

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;

    using System.Windows.Forms;

    namespace WindowsFormsApplication3

    {

    public partial class Form1 : Form

    {

    public Form1()

    {

  • 4

    InitializeComponent();

    }

    }

    }

    C.ĠSĠM UZAYLARI

    1 .N am eSp ace

    Ġsim uzayları (namespace) program yazm anın en önem li parçasıdır ve daha çok yazılan kodların tekrar

    kullanılabilir liğini art ırmak için geliĢt irilm iĢt ir . Böylece hazır kodlar veya program cının daha önce oluĢturduğu

    isim uzayları yeni program içine dahil edilerek kullanılabilir .

    2 .Usin g Ġf ad esi

    Hazır veya program cının oluĢturduğu namespace‟ler using

    ifadesi ile programa dahil edilir .

    3 .Nesn e Ek lem e

    Toolbox‟dan istenen nesneler sürükle bırak veya çift t ıklama

    yoluyla form a eklenebilir .

    5 .Nesn ey e Kod Yazm a

    Eknenen nesnenin Propert ies penceresinde Propert ies (1)

    düğm esi ile özelliklerine, Events (2) düğmesi ile olaylarına

    ulaĢılabilir . Örneğin but ton1 nesnesine t ıklandığında yapılm ası istenen iĢlem ler için Events bölüm ünden Click

    seçeneğine çift t ıklanarak açılan kod penceresine istenen kodlar yazılır.

    D.DEĞĠġ KENLER VE VERĠ TÜRLERĠ

    1 .Değ iĢk en Tan ım lam a Ku r al l ar ı

    Hazır lanmakta olan bir programda, hangi değiĢkenler in kullanılacağını programı yazmadan önce planlanması

    önerilir . Fakat C# program lam a dili kullanım sırasında tanım lamaya izin ver ir.

    DeğiĢkenlerin isim lendir ilm esi de önem li bir konudur. Ġsim lendirme sırasında değiĢkenin kullanım am acını

    anlatan kısa bir isim kullanılm alıdır . Genel olarak baĢka isim lendirme kuralları Ģunlardır :

    Ġlk har f veya tam amı sayı olam az. Mesela: “2nciYari” gibi olmaz.

    DeğiĢken ism i içinde “boĢluk, TAB, Enter” olam az. Mesela “Soy Ad” gibi olmaz.

    Büyük küçük harfle yazım * * fark eder. Mesela: “ I lkNot ” ile “ I LKNOT” farklıdır .

    Dilin anahtar kelim eleri değiĢken adı olam az. Mesela: “main, write” gibi…

    Türkçe ve özel karakter ler i kullanm amaya çalıĢmalıyız. (Türkçe karakter ler: ı,Ġ,Ģ,ġ ,ç,Ç,ğ,Ğ,ö,Ö,ü,Ü)

    Mesela: “örütBağ” yer ine “orutBag” gibi…

    Alt çizgi isim lendirmede kullanılabilir . Mesela: “ taban_Ucret ” gibi…

    2 .Tem el Ver i Tü r ler i

    C# da iki çeĢit ver i t ipi vardır:

    Değer Tipler i (Value type)

    Referans Tipler i(Reference Type)

    Değer t ipler i veriyi direk olarak bellek bölgesinden alırken referans t ipleri içinde veri değil adres bilgisi tutar lar.

    NOT: Değer t ipleri birbirine eĢit lenirken değiĢkenin barındırdığı değer bir diğer değiĢkene kopyalanır . Böylece iki

    farklı bağım sız değiĢken oluĢur. Referans t ipler i ise eĢit leme sırasında değiĢkenlerin taĢıdıklar ı ver i iĢaret

    et t ikleri adres kopyalanır . Böylece eğer iki referans değiĢkeni birbir ine eĢit lediyse ve daha sonra bunlardan

  • 5

    bir inde bulunan ver i değiĢt ir ilse ise otomat ik olarak diğer referans değiĢkeninin değeri de değiĢir . Çünkü adreste

    bulunan veri değiĢince bu adresi iĢaret eden iki değiĢkende yeni ver i bilgisine ulaĢır.

    C# da toplam 15 veri t ipi vardır bunlardan 13 ü değer t ipindedir , 2 si ise referans t ipindedir .

    NOT: CTS, ver i t ipinin .NET için de kullanılabilen tüm dillerdeki ortak ism idir.

    Değ er Tip ler i ( Va lu e t y pe)

    C# Ad ı CTS Kar Ģıl ığ ı Açık lam a Bel lek t e

    Kap lad ığ ı Alan Max v e Min ar a l ık y a d a d eğ er i

    sbyte System.Byte 8 bit iĢaret li tamsayı 1 Byte -128 : 127

    short System.I nt16 16 bit iĢaret li tamsayı

    2 Byte -32.768 : 32.767

    int System.I nt32 32 bit iĢaret li tamsayı

    4 Byte -2.147.483.648 : 2.147.483.647

    long System.I nt64 64 bit iĢaret li tamsayı 8 Byte

    -9.223.372.036.854.775.808 : 9.223.372.036.854.775.807

    byte System.Byte 8 bit iĢaretsiz tamsayı

    1 Byte 0 : 255

    ushort System.UI nt16 16 bit iĢaretsiz tamsayı

    2 Byte 0 : 65.535

    uint System.UI nt32 32 bit iĢaret siz tamsayı 4 Byte 0 : 4.294.967.295

    ulong System.UI nt64 64 bit iĢaretsiz tamsayı

    8 Byte 0 : 18.446.744.073.709.551.615

    f loat System.Single 32 bit tek kayan sayı

    4 Byte + yada – 1,5* 10-45 : + ya da – 3,4* 1038

    (v irgülün sağında ve solunda 7 basamak)

    double Sytem .Double 64 bit çift kayan sayı 8 Byte

    + yada – 5* 10-324 : + ya da – 1,7* 10308

    (v irgülün sağında ve solunda 15-16 basam ak)

    decimal System.Decimal 128 bit ondalık lı sayı

    16 Byte + yada – 1,0* 10-28 : + ya da – 7,9* 1028 (v irgülün sağında ve solunda 28-29 basam ak)

    bool System.Boolean 2 Byte t rue ya da false

    char System.Char Tek Karakter 2 Byte 16 Unicode karakter ler i

    Ref er ans Tip ler i ( Ref er en ce Ty pe)

    C# Ad ı CTS Kar Ģıl ığ ı Açık lam a

    st r ing System.Str ing 16 Unicode karakter diziler i

    object System.Object Bütün ver i tür ler inin türediği kök eleman

    3 .Değ iĢk en Tan ım lam a

    C# da değiĢkenler aĢağıdaki yapıda tanım lanır lar.

    ;

    Ör n ek :

    int sayi = 4; //sayi i si ml i i l k değer i 4 olan integer t i pi nde bi r deği şken t anı ml andı .

    bool cevap; //cevap isimli bollean t i pi nde bi r deği şken t anı ml andı .

    cevap = false; / / cevap deği şkeni i çi ne f al se değer i akt ar ı l dı .

    double yuzde = 98.32, ortalama = 35; //yuzde i si ml i i l k değer i 98. 32 ve or t al ama i si ml i i l k değer i 35

    olan double t i pi nde bi r deği şken t anı ml andı .

    char karakter = 'A'; //karakter i si ml i i l k değer i A olan char t i pi nde bi r deği şken t anı ml andı .

    string sinif; //sinif isimli string t i pi nde bi r deği şken t anı ml andı .

    si ni f = “ ATL10” ; //si ni f deği şkeni ne ATL10 ver i si akt ar ı l dı .

  • 6

    Ör n ek : DeğiĢkene değer atam a

    a = 5; / / Doğr u; a’ nı n değer i 5 ol ur

    a = a +5; / / Doğr u; a’ nı n eski değer i ne 5 ekl eni r

    a + 5 =a; / / Hat al ı !

    5 = a; / / Hat al ı !

    a = a; //Gereksiz

    Ör n ek : Form üzerine 1 adet buton ve 13 adet label nesnesi yer leĢt ir iniz. but ton1_Click olayına aĢağıdaki kodları

    yazınız.

    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;

    using System.Windows.Forms;

    namespace WindowsFormsApplication3

    {

    public partial class Form1 : Form

    {

    public Form1()

    {

    InitializeComponent();

    }

    private void button1_Click(object sender, EventArgs e)

    {

    byte a = 255;

  • 7

    short b = 32767; / / max değer

    int c = 21474836;

    long d = 9223372036854775807;

    f l oat f = 7. 1234568f ; / / max 7 basamak, 8. basamağı yuvar l adı

    double g = 21212.3321;

    decimal h = 7.9000000000000000000000000000M;

    decimal i = 7.9E+28M; //max 29 basamak

    bool k = true;

    char m = 'A';

    st r i ng n = " Cok çal ı şmam l azı m çok" ;

    object p = 123;

    object r = "Merhaba ASP";

    object s = true;

    l abel 1. Text = " Byt e deği şken: " + a; / / deği şkenl er yazdı r ı l ı yor .

    l abel 2. Text = " Shor t deği şken: " + b;

    l abel 3. Text = " I nt eger deği şken: " + c;

    l abel 4. Text = " Long deği şken: " + d;

    label5.Text = "Float deği şken: " + f ;

    l abel 6. Text = " Doubl e deği şken: " + g;

    l abel 7. Text = " 1. Deci mal deği şken: " + h;

    l abel 8. Text = " 2. Deci mal deği şken: " + i ;

    l abel 9. Text = " Bool ean deği şken: " + k;

    label10.Text = " Char deği şken: " + m;

    l abel 1. Text = " St r i ng deği şken: " + n;

    l abel 11. Text = " 1. Obj ect deği şken: " + p;

    l abel 12. Text = " 2. Obj ect deği şken: " + r ;

    l abel 13. Text = " 3. Obj ect deği şken: " + s;

    }

    }

    }

    NOT: Float ver i t ipindeki değiĢkene değer aktarım ı için değerinin sonuna “F” karakter i, Decimal ver i t ipindeki

    değiĢkene değer aktarım ı için değerinin sonuna “M” karakter i eklenmelidir .

    NOT: Char veri t ipindeki değiĢkene değer aktarımı için değerinin sonuna „‟ ( tek t ırnak) , St ir ing veri t ipindeki

    değiĢkene değer aktarım ı için “ ” (çift t ırnak) kullanılm alıdır .

    4 .Tip Dö n ü Ģü m ler i :

    Convert komutu ile veri türler i birbirine dönüĢtürülebilir .

  • 8

    Tip Kar Ģıl ığ ı Ku l lan ım ı Tip Kar Ģıl ığ ı Ku l l an ım ı

    bool Boolean Convert .ToBoolean( ) long I nt64 Convert .ToInt64( )

    byte Byte Convert .ToByte( ) ulong UInt64 Convert .ToUInt64( )

    sbyte Sbyte Convert .ToSbyte( ) float Single Convert .ToSingle( )

    shor t I nt16 Convert .ToI nt16( ) double Double Convert .ToDouble( )

    ushort UInt16 Convert .ToUInt16( ) decimal Decimal Convert .ToDecim al( )

    int I nt32 Convert .ToI nt32( ) char Char Convert .ToChar( )

    uint UInt32 Convert .ToUInt32( )

    4.1. Parse( )

    Kullanıcıdan bir değer alındığında (ġ imdilik konsol ekranından, daha sonrası için m asaüstü ve

    web uygulamalarında textBox gibi bir kont rolden olabilir ) bu değerin istenilen değiĢkene doğru t ipte

    at ıldığının garant i edilmesi gerekir. Console.ReadLine( ) ile okunan ver iler daha önce görüldüğü gibi her

    halükarda text tabanlı olacakt ır ve doğrudan bir değiĢkene at ılmak istenirse bu değiĢkenin t ipi (eğer ekst ra efor

    harcanmazsa) sadece st r ing olabilir . Kullanıcıdan sayısal bir değer alınırsa, bu değer st r ing t ipinde bir değiĢken

    üzer inde taĢınabilir ve m atem at iksel bir iĢlemde kullanılamaz.

    {

    St r ing fiyat ;

    fiyat= textBox1.Text ;

    int zam lif iyat= fiyat+ 15; / / Derleme hatası

    }

    Çünkü toplama gibi bir matemat iksel iĢleme sokulm aya çalıĢılan değiĢkenin değeri „15‟ olmasına rağm en veri

    t ipi herhangi bir tam sayı ya da ondalık sayı değil bu sayının text tabanlı t em silini yapan „st r ing‟ dir . Burada

    yapılm ası gereken; „15‟ verisini doğru t ipte ele alabilmekt ir . Tam bu soruna yönelik bir çözüm vardır: Parse( )

    metodu. Bu metot , doğru t ipte ele alınm ası gereken önceden –tanım lı t ipler üzer inden

    çağrılabilen (yukarıdaki senaryoda int üzer inden) bir üyedir . Bütün önceden tanım lı t iplerin Parse( ) metot ları

    vardır .

    {

    St r ing fiyat ;

    fiyat= textBox1.Text ;

    int zam lif iyat= int .parse( fiyat )+ 15;

    }

    Parse( ) metodu bütün önceden tanım lı t ipler üzer inden çağr ılabilir ; hangi t ip üzer inden çağrılm ıĢsa ver inin st r ing

    temsilini, çağrıldığı t ipe çevir ir . Böylece ver inin kendine özgü özellikler inden faydalanılması

    sağlanmıĢ olur.

    E.OPERATÖRLER

    1 .Ar i t m et ik sel Op er at ö r le r

    Program lam a dili bilinen dört iĢlem in ar itmet ik iĢleçlerini destekler: Toplam a(+ ) , çıkarma( - ) , çarpm a(* )

    bölme( / ) . Ayrıca % ile kalan veya mod iĢlem i yapılır .

    Tüm iĢleçler tüm veri tür ler ine uygulanam az. Bir değer üzerinde kullanılabilecek iĢleçler, değerin türüne bağlıdır.

    Örneğin, char, int , long, float , double, ya da decimal ver i türler inde tüm aritm et ik iĢleçler i kullanılabilir . Bununla

    bir likte st r ing türü değiĢkenler üzer inde art ı(+ ) iĢleci dıĢında aritmet ik iĢleçler kullanılam az.

    NOT: Ar itmet ik iĢlem sonucundaki değer türü, kullanılan iĢlenenler türüne bağlıdır . Örneğin, 5.0/ 2.0 ifadesinin

  • 9

    değeri 2.5 t ir . Her iki iĢlenenin türü double‟dir bu nedenle sonuç türü de double‟dir .5/ 2 ifadesinde her iki iĢlenen

    de int türünde ise sonuçta int türünde olacak ve sonuç 2 olacakt ır. Bu gibi durum larda her zam an değerleri

    aĢağıya yuvarlanır .

    2 .A t am a Op er at ö r ü

    Atam a iĢlem leri = iĢaret i ile yapılır . ĠĢaret in sağ tarafındaki değer, sol tarafa depolanır .

    a = 5; / / Doğr u; a’ nı n değer i 5 ol ur

    a = a +5; // Doğr u; a’ nı n eski değer i ne 5 ekl eni r

    a + 5 =a; / / Hat al ı !

    5 = a; / / Hat al ı !

    a = a; //Gereksiz

    3 .Ar t ır m a v e Azal t m a Op er at ö r ler i

    sayac = sayac +1; //sayac++ veya + + sayac

    sayac = sayac -1; //sayac-- veya - -sayac

    + + veya - - iĢleçler i, değiĢkenden önce ve sonra kullanılabilir .

    sayac++; / / sonek ar t ı r ma

    ++sayac; / / önek ar t ı r ma

    sayac--; //sonek azaltma

    --sayac; / / önek azal t ma

    ĠĢleçlerin değiĢkenden önce ve sonra kullanılması sonucu değiĢt irmez. Her durum da değiĢkenin değeri 1 art ır ılır

    ya da 1 azalt ılır am a iĢlem öncelik sırasından kaynaklanan farklılık lar doğabilir .

    Ör n ek :

    private void button3_Click(object sender, EventArgs e)

    {

    int a;

    a= Convert.ToInt32(textBox1.Text);

    label1.Text = "a++: " + Convert.ToInt32(a++);

    a = Convert.ToInt32(textBox1.Text);

    label2.Text = "++a: " + Convert.ToInt32(++a);

    }

    Diğer iĢlem ler için:

    ĠġLEM AÇI KLAMA YERĠNE

    a= a+ 5 a değiĢkeninin değeri 5 art ırılıyor. a+ = 5

    a= a-b a değiĢkeninin değeri b değiĢkeni kadar azalt ılıyor. a-= b

    a= a* c a değiĢkeninin değeri c değiĢkeni kat ına çıkarılıyor. a* = c

    a= a/ 5 a değiĢkeninin değeri 5‟e bölünüyor. a/ = 5

  • 1 0

    MODÜL 2 :NESNE TABANLI PROGRAMLAMADA KARAR VE DÖNGÜ

    YAPI LARI

    A.ĠLĠġ KĠSEL VE MANTI KSAL OPERATÖRLER

    1 .Ġl iĢk ise l Oper at ö r ler

    KarĢılaĢt ırm a iĢlemler inde kullanılan operatörlerdir .

    = = op er a t ö r ü : Verilen iki ifadenin eĢit olup olmadığını

    != op er at ö r ü : Verilen iki ifadenin farklı olup olm adığını

    < op er at ö r ü : Verilen bir inci ifadenin ikinci ifadeden küçük olup olm adığını

    > op er at ö r ü : Verilen bir inci ifadenin ikinci ifadeden büyük olup olm adığını

    > = op er a t ö r ü : Verilen bir inci ifadenin ikinci ifadeden büyük veya eĢit olup olmadığını

    < = op er at ö r ü : Verilen bir inci ifadenin ikinci ifadeden küçük veya eĢit olup olmadığını

    anlam ak için kullanılır. Sonuç TRUE (doğru) veya FALSE(yanlıĢ) değerini alır.

    2 .Man t ık sal Op er at ö r ler

    Tem el olarak “True – Evet ” ve “False – Hayır” mant ıksal değerlerini alabilen değerler üzer inde iĢlem yapmamızı

    sağlar.

    & & ( Ve - An d ) oper a t ö r ü : Logic iki ifadenin'de doğru olması gereklidir .

    I fade1 I fade2 Sonuç= I fade1 && I fade2

    False False False

    False True False

    True False False

    True True True

    | | ( Vey a - Or ) op er a t ö r ü : Logic Ġki ifadeden yalnızca bir inin doğru olması yeter lidir

    I fade1 I fade2 Sonuç= I fade | | I fade2

    False False False

    False True True

    True False True

    True True True

    !No t o per at ö r ü : Logic bir ifadenin değilinin alınm ası için kullanılır .

    I fade ! I fade

    True False

    False True

    Ör n ek :

    private void button1_Click(object sender, EventArgs e)

    {

    int a = Convert.ToInt32(textBox1.Text);

    int b = Convert.ToInt32(textBox2.Text);

    label1.Text=Convert.ToString(a > b);

    }

    private void button2_Click(object sender, EventArgs e)

    {

  • 1 1

    int a = Convert.ToInt32(textBox1.Text);

    int b = Convert.ToInt32(textBox2.Text);

    label2.Text = Convert.ToString(a == (2 - b));

    }

    private void button3_Click(object sender, EventArgs e)

    {

    int a = Convert.ToInt32(textBox1.Text);

    int b = Convert.ToInt32(textBox2.Text);

    label3.Text = Convert.ToString((a > 0) && (b 0) || (b , > = Küçük Küçük veya eĢit Büyük Büyük veya eĢit

    EĢit lik = , != EĢit , EĢit değil

    KoĢullu m ant ıksal &&, | | Mant ıksal AND Mant ıksal OR

    NOT: Aynı önceliğe sahip operatör lerde ise soldaki öncelik lidir.

    B.ġ ART ĠFADELERĠ

    1 .I f Ġf ad esi

    a .I f k u l l an ım ı:

    if (şar t )

    {

    komutlar

    }

    if (şar t )

    komut

    ġart doğru ise kom ut veya komut lar çalıĢır.

    b .I f ..e lse k u l l an ım ı:

    if (şar t )

    {

    Komutlar / / 1. böl üm

    }

    else

    if (şar t )

    komut / / 1. böl üm

    else

    komut / / 2. böl üm

  • 1 2

    {

    Komutlar / / 2. böl üm

    }

    ġart doğru ise bir inci bölüm deki komut lar, Ģart yanlıĢ ise ikinci bölümdeki komut lar

    Ör n ek : But tona basıldığında, text içine girilen sayı negat if ise SAYI NEGATĠFTĠR mesaj ını görüntüleyen

    programı yazınız.

    private void button1_Click(object sender, EventArgs e)

    {

    int s = Convert.ToInt32(textBox1.Text);

    i f ( s < 0) MessageBox. Show( " NEGATİ F" ) ; el se MessageBox. Show( " POZİ Tİ F" ) ;

    }

    2 .Ġçi Ġçe I f Ġf ad esi

    Benzer durum ları kont rol eden birkaç if deyim i iç içe yazılarak, programın daha hızlı ve verim li çalıĢm ası

    sağlanır .

    Ör n ek : 3 adet text kutusuna gir ilen 2 sınav puan ve 1 sözlü puanına göre or talam a puanı ve notunu bulan

    program.

    private void button2_Click(object sender, EventArgs e)

    {

    double n1 = Convert.ToDouble(textBox1.Text);

    double n2 = Convert.ToDouble(textBox2.Text);

    double s = Convert.ToDouble(textBox3.Text);

    double ort;

    ort = (n1 + n2 + s) / 3;

    label4. Text = " Puan Or t al aması : " + St r i ng. For mat ( " { 0: 00. 0} " , or t ) ;

    if (ort < 25)

    label5.Text = "Not: 0";

    else if (ort

  • 1 3

    blok2;break;

    ...

    default:

    blok;

    }

    Ör n ek : Switch ile okul kat planı

    Form üzerinde Blok ve Kat ı seçmek için 2 adet combobox, kat planını

    görüntülemek için bir adet list box kullanılarak yandaki form tasar lanır .

    Blok seçim i yapılacak combobox1 nesnesinin I tems özelliğine, A, B, C, E, G

    değerler i eklenir ve Text özelliğine A yazılır .

    Kat seçim i yapılacak combobox2 nesnesinin I tem s özelliğine, Zem in, 1, 2, 3

    değerler i eklenir ve Text özelliğine Zem in yazılır .

    Buton içine aĢağıdaki kodlar yazılır.

    private void button1_Click(object sender, EventArgs e)

    {

    listBox1.Items.Clear();/ / Var sa daha önceki seçi me ai t pl anı si l er .

    switch (comboBox1.Text) / / Bl ok seçi mi ne gör e

    {

    case "A":

    switch (comboBox2.Text) / / Kat seçi mi ne gör e

    {

    case "Zemin":

    listBox1.Items.Add("Kantin");

    listBox1.Items.Add("Kalorifer dairesi");

    break;

    case "1":

    l i st Box1. I t ems. Add( " Öğr et menl er Odası " ) ;

    l i st Box1. I t ems. Add( " İ dar esi Odal ar ı " ) ;

    l i st Box1. I t ems. Add( " Memur Odal ar ı " ) ;

    break;

    case "2":

    l i st Box1. I t ems. Add( " Sı nı f l ar " ) ;

    l i st Box1. I t ems. Add( " Bi l gi sayar Labor at uar ı " ) ;

    break;

    case "3":

    l i st Box1. I t ems. Add( " Sı nı f l ar " ) ;

    l i st Box1. I t ems. Add( " Fen Labor at uar ı " ) ;

    break;

    }

    break;

    case "B":

    switch (comboBox2.SelectedText)

    {

    case "Zemin":

    l i st Box1. I t ems. Add( " Ahşap Teknol oj i si At öl yel er i " ) ;

    listBox1.Items. Add( " Met al Teknol oj i si At öl yel er i " ) ;

  • 1 4

    l i st Box1. I t ems. Add( " Tesi sat ve İ kl i ml endi r me Teknol oj i si At öl yel er i " ) ;

    l i st Box1. I t ems. Add( " Mot or Teknol oj i si At öl yel er i " ) ;

    break;

    default:

    listBox1.Items.Add(comboBox1.Text+" blokta" + comboBox2.Text + ". kat yoktur.");

    break;

    }

    break;

    case "C":

    switch (comboBox2.SelectedText)

    {

    case "Zemin":

    l i st Box1. I t ems. Add( " Maki ne Teknol oj i si At öl yel er i " ) ;

    break;

    case "1":

    l i st Box1. I t ems. Add( " El ekt i r i k Teknol oj i si At öl yel er i " ) ;

    break;

    default:

    listBox1.Items.Add(comboBox1.Text+" blokta" + comboBox2.Text + ". kat yoktur.");

    break;

    }

    break;

    case "E":

    switch (comboBox2.SelectedText)

    {

    case "Zemin":

    l i st Box1. I t ems. Add( " İ dar eci Odal ar ı " ) ;

    l i st Box1. I t ems. Add( " Sı nı f l ar " ) ;

    break;

    case "1":

    l i st Box1. I t ems. Add( " Öğr et menl er Odası " ) ;

    listBox1.Items. Add( " İ dar eci Odası " ) ;

    l i st Box1. I t ems. Add( " Sı nı f l ar " ) ;

    break;

    case "2":

    l i st Box1. I t ems. Add( " Bi l i şi m Teknol oj i l er i Bi l gi sayar Labor at uar l ar ı " ) ;

    listBox1.Items.Add( " Sı nı f " ) ;

    break;

    default:

    listBox1.Items.Add(comboBox1.Text+" blokta" + comboBox2.Text + ". kat yoktur.");

    break;

    }

    break;

    case "G":

    switch (comboBox2.SelectedText)

    {

  • 1 5

    case "Zemin":

    l i st Box1. I t ems. Add( " Sı nı f l ar " ) ;

    break;

    case "1":

    l i st Box1. I t ems. Add( " Sı nı f l ar " ) ;

    break;

    case "2":

    l i st Box1. I t ems. Add( " Sı nı f l ar " ) ;

    l i st Box1. I t ems. Add( " Öğr et menl er Odası " ) ;

    break;

    default:

    listBox1.Items.Add(comboBox1.Text+" blokta" + comboBox2.Text + ". kat yoktur.");

    break;

    }

    break;

    }

    }

    C.DÖNGÜ YAPI LARI

    1 .W h i le Ġf ad eler i

    Bir koĢula bağlı olarak (koĢul sonucu t rue olduğu sürece) bir t akım kodlam aları tekrar tekrar çalıĢt ırmak için

    kullanılan döngüsel yapıdır.

    while(şar t l ı ifade)

    {

    komutlar;

    }

    Ör n ek : Form üzerinde 1-20 arasındaki sayılar (but ton1) , 30-5

    arasındaki 5‟in kat ı olan sayılar ve toplamı(but ton2) , Ġki sayı

    arasındaki sayılar (but ton3) , 0 gir ilene kadar sayı gir iĢi (but ton4) ,

    0 gir ilene kadar girilen çift saylar ve toplamı (but ton5)

    düğm elerine basıldığında istenen iĢlem i listbox içine yazan

    program.

    NOT: but ton4 ve buton5 için gir iĢ kutusu( InputBox) kullanılm ası

    gerekir . Bunun için öncelik le using Microsoft .VisualBasic

    namespace‟i eklenir .

    int s1=0, s2=0;

    private void button1_Click(object sender, EventArgs e)

    { //1-20 ar ası ndaki sayı l ar

    s1 = 1;

    while (s1

  • 1 6

    while (s1 >= 5)

    {

    s2 += s1;

    listBox1.Items.Add(s1);

    s1 -= 5;

    }

    listBox1.Items.Add("---");

    listBox1.Items.Add(s2);

    }

    private void button3_Click(object sender, EventArgs e)

    { // İ ki sayı ar ası ndaki sayı l ar

    s1 = Convert.ToInt32(textBox1.Text);

    s2 = Convert.ToInt32(textBox2.Text);

    while (s1

  • 1 7

    ise genelde bu döngü kullanılmaktadır. for ifadesinin söz dizim i Ģu Ģekildedir:

    f or ( başl angı ç değer i ; bi t i ş değer i ( koşul ) ; sayaç deği şkeni güncel l emesi )

    {

    komutlar;

    }

    Ör n ek : Yukarıdaki örnekte ilk üç butona ait iĢlem for döngüsü kullanılarak yapılmak istenseydi:

    int s1=0, s2=0, k;

    private void button1_Click(object sender, EventArgs e)

    { //1-20 ar ası ndaki sayı l ar

    for(k=1;k=5;k-=5)

    {

    listBox1.Items.Add(k);

    s1+=k;

    }

    listBox1.Items.Add("---");

    listBox1.Items.Add(s2);

    }

    private void button3_Click(object sender, EventArgs e)

    { // İ ki sayı ar ası ndaki sayı l ar

    s1 = Convert.ToInt32(textBox1.Text);

    s2 = Convert.ToInt32(textBox2.Text);

    for(k=s1;k

  • 1 8

    Break kom utu, döngüden çıkm ak için kullanılan bir komut tur. ĠĢleyiĢ, döngüden sonraki komut tan devam

    edecektir .

    Ör n ek : Form üzerinde bulunan iki text arasındaki sayı toplamını 1000‟den büyük olduğu anda duracak Ģekilde

    çalıĢm asını sağlayan kodlar.

    private void button1_Click(object sender, EventArgs e)

    {

    int s1 = Convert.ToInt32(textBox1.Text);

    int s2 = Convert.ToInt32(textBox2.Text);

    int k,t = 0;

    for (k = s1; k 1000) break;

    }

    MessageBox.Show(Convert.ToString(t));

    }

    D.DiYALOG KUTULARI

    1 .Messag eBox Ku l lan ım ı

    Kullanıcıya bir pencerede mesaj vermek veya düğme yardım ıyla kullanıcıdan aldığı yanıta göre iĢlem yapm ak

    am acıyla kullanılır .

    MessageBox.Show("Mesaj",["Başl ı ğı "], [Kut u özel l i kl er i ]);

    NOT: [ ] ile belirt ilen bölüm ler in kullanım ı isteğe bağlıdır.

    Ku t u özel l i k ler i :

    MessageBox Bu t t on s.AbortRet ryIgnore: Ġptal Et , Tekrar Dene, Yoksay düğm eler ini,

    MessageBoxBut tons.OK: Tam am düğmesini,

    MessageBoxBut tons.OKCancel: Tam am veya Ġptal düğmelerini,

    MessageBoxBut tons.Ret ryCancel: Tekrar Dene veya Ġptal düğm elerini,

    MessageBoxBut tons.YesNo: Evet , Hayır düğmeler ini,

    MessageBoxBut tons.YesNoCancel : Evet , Hayır , Ġptal düğmelerini çıkarır .

    MessageBox I con .Error : Hata iĢaret i(kırmızı üzer ine x Ģeklinde)

    MessageBoxI con.Exclam at ion: Ünlem iĢaret i (Sarı üçgen üzerine) veya MessageBoxIcon.Warning

    MessageBoxI con.I nformat ion: Bilgi(Mavi üzer ine ünlem )

    MessageBoxI con.Quest ion: Soru iĢaret i ikonu ile görüntülenir .

    MessageBox Def au l t Bu t t on .But ton1: Hangi butonun seçili olacağı belir lenir .

    NOT: DialogResult ile basılan düğmenin kont rolü yapılabilir .

    Ör n ek :

    private void button1_Click(object sender, EventArgs e)

    {

    Di al ogResul t cev=MessageBox. Show( " İ şl emi ni z Yapı l ı yor " , " Bi l gi " , MessageBoxBut t ons. OKCancel ,

    MessageBoxIcon.Information); / / ver i l en yanı t cev deği şkeni i çi ne akt ar ı l ı yor .

    if (cev == DialogResult.OK) / / Tamam düğmesi ne bası l dı ysa

    MessageBox.Show("Tamam düğmesi ne bası l dı . " ) ;

    }

  • 1 9

    2 .I n p u t Box Ku l lan ım ı

    Bir VisualBasic komutu olan I nputBox, using Microsoft .VisualBasic kom utu ile VisualBasic nam espace‟inin

    projeye eklenerek, bu isim uzayı içindeki sınıflardan bir i olan Interact ion.InputBox‟ın kullanılm asını sağlar.

    Kullanıcıdan bir pencere yardım ıyla değer istem e am acı ile kullanılır .

    String degisken_adi= I nt er act i on. I nput Box( " Mesaj " , [ " Başl ı k" ] , [ " Var sayı l an değer . " ] , [ Ekr anda

    açı l acağı yer i n x koor di nat ı ] , [ Ekr anda açı l acağı yer i n y koor di nat ı ] ) ;

    E.HATA AYI KLAMA

    1 .Tr y - Cat ch Bloğ u

    a .Bi r den Ço k Cat ch Bloğ u

    b .Den et len m iş İ f ade ler

    c.Den et len m iş Dey im ler

    d .Özel Du r um lar

    e .Fi n a l l y Bloğu

    2 .Ad ım Ad ım Ġzlem e

    Debug menüsünden Step Into(F11) veya Step Out komut ları (Shift+ F11) ile programın adım adım izlenerek

    varsa mant ıksal hataların bulunması sağlanır .

    Bu iĢlem öncesinde programın baĢlangıç noktasına veya adım adım izlenecek bölümün baĢına BreakPoint

    yerleĢt irilmelidir. Böylece program iĢaret lenen sat ıra kadar normal çalıĢır ve bekler, sonraki komut lar adım adım

    izlenebilir . Herhangi bir sat ıra BreakPoint yer leĢt irmek için sat ırın en baĢına fare ile t ıklanarak kırm ızı yuvarlak

    bir iĢaret in oluĢması sağlanır .

    Daha sonra adım adım izlem e iĢlemi tümalt program ların da içine girerek yapılacaksa Step I nto(F11) , alt

    program lar içine girmeden yapılıp sonraki adıma geçilecekse Step Out (Shift+ F11)

  • 2 0

    MODÜL 3 :NESNE TABANLI PROGRAMLAMADA W I NDOW S

    UYGULAMALARI

    A.W ĠNDOW S FORMLAR

    1 .W in d ow s For m Uy g u lam ası Olu Ģt u r m a

    C# „ da form lara dayalı program yazm ak için Microsoft Windows

    uygulam asını kullanabilir iz. Bu uygulam anın adı da Windows Form s

    Applicat ion‟dır. Visual Studıomuzu açıp New Project ‟e t ıkladıktan sonra

    Visual C# ‟ı onaylayıp Windows Forms Applicat ion‟ ı seçeriz. KarĢım ıza

    yandaki pencere çıkar.

    2 .W in d ow s For m Özel l ik ler i

    Form un biçim lendirmesini, yani isim ve sit il değiĢikliklerini özellikler

    penceresinden (propert ies) yapabilir iz. Formun özellikler ini değiĢt irmek için

    öncelikle form üzerine bir kere t ıklamam ız gerekir . Yani form nesnesini seçili

    duruma get irm iĢ oluyoruz.

    NOT: formun özellikler ini kod ile de değiĢt irebilir iz. C# ‟da çalıĢılan form

    Th is komutu ile tem sil edilir . Örneğin form un rengi değiĢt r ilm ek

    istendiğinde yazılıcak kom ut sat ır ı This.BackColor= Color.Red; „t ir .

    Nam e : Burası Formumuza isim verir yani default olarak ayarlı olan form1 yerine dilediğim iz ism i vermem izi

    sağlar.

    Accep t Bu t t o n : Burası projem izi çalıĢtırdığım ızda enter tuĢuna basılınca tet iklenmesini istediğim iz butonu

    temsil eder.

    A l l ow Dr op : Burası forma sürükle bırak yöntemi ile bir Ģeyler eklemek istersek t rue yapılması gereken

    özellikt ir .

    Au t oScaleMod e : Bilgisayarım ızın ekran çözünürlüğünün deĢiĢt ir ilmesi durum unda nasıl davranacağını belirt ir .

    Au t oScr o l l : Eklediğim iz cont rolün form penceresine sığmaması durumunda scrollbar eklenme durumunu

    belirt ir . t rue seçeilirse eklenir.

    Au t oScr o l lMar g in : Auto scroll t rue yapılm ıĢsa yandakinin yüksekliğini alt takinin geniĢliğini integer değer

    alarak belir t ir . değer gir ilmezse cont roller in bit t iği yere kadar kaym a sağlar.

    Au t oScr o l lMin um u Size : Bi öncekine benzer bir özellikt ir ve kont rollerim iz form um uza sığsa bile belirt ilen

    width ve height kadar scroll boyut kazanarak kayma sağlar.

    Au t oSize : Forma eklenen kont roller form a sığmıyorsa otomat ik olarak form penceresin in ebat larının artmasını

    sağlayan özellikt ir .

    Au t oSizeMode : Ġki seçenek sunar. Default olarak ayarlı olan GrowOnly projem iz çalıĢırken form boyutunu

    değiĢt irmemize izin verir . GrowAndShrink seçilirse çalıĢm a anında form penceresinin boyut larının değiĢim ine izin

    verm ez.

    Back Co lo r : Form um uzun arka plan rengini değiĢt irmem izi sağlar.

    Back g r ou n I m age : Form um uzun arka planına resim eklem emizi sağlayan özelliğidir .

    Back g r ou n I m ageLay ou t : Default ayarı Tile olarak gelen bu özellik; eklediğim iz arkaplan resm inin forma sol

    üst ten baĢlayarak sığacak kadar olan kısm ını gösterm esini, Center; resim form dan küçük ise formu ortalayacak

  • 2 1

    Ģekilde görünmesini, St retch; resm in form a tam sığacak Ģekilde boyut lanarak görünm esini, Zoom ise resm in

    or j inal boyutunu koruyarak sığacak Ģekilde görünm esini sağlar.

    Can celBu t t on : ÇalıĢm a esnasında esc tuĢuna basıldığında tet iklenmesini ist ediğim iz butonu seçmem izi sağlar.

    Cau sesVal id at ion : Default olarak t rue olan bu özellik Validator lerin devreye girm esini sağlıyo.

    Con t ex t Men u St r ip : Formumuza ait bir contextMenüSt rip varsa ve bu seçenekte onu belir t irsek çalıĢm a

    esnasında form üzerinde sağ t ıkladığımızda açılmasını sağlar.

    Con t r o lBox : Form un sağ üst köĢesinde bulunan kapat -küçült -simgedurumu butonlarını kaldırm ayı sağlar .

    Cu r so r : Mouse'nin form üzerinde nasıl görünm esini istersek buradan seçebilir iz.

    Dou b leBu f f er ed : Bu özellik form umuz üstüne çizilm iĢ bir resim varsa onun t it rem esini giderir .

    En ab led : Formum uz üzer ine eklenm iĢ kont rollerin(but ton, textbox vs.) akt if yani kullanılabilir olm asını yada

    olm am asını sağlar.

    Fon t : Bu özellik ile form üzerine eklenen kont rollerin yazı fontunu ayarlamayı sağlar.

    For eCo lo r : Form üzerine eklenen kontollerin yazı rengini ayar lamam ızı sağlar.

    For m Bor d er St y le : Form um uzun çerçeve st ilini değiĢt irmem izi sağlar. Burda söylem ek istediğim ekst ra ufak

    birĢey: eğer bu seçeneği SizableToolWindow yaparsak formumuz görev çubuğunda ve pencere geçiĢlerinde

    görünm ez ; )

    He lp Bu t t on : BaĢlık çubuğuna help but tonu eklem eyi sağlar.

    I con : Form um uzun sol üst köĢesindeki iconu değiĢt irm emizi sağlar .

    I m eMode : Bu özellik form um uzda çince, japonca, korece gibi dillerin karakter ler inin desteğini sağlar. Ayarların

    detayları için eĢsiz kütüphane:

    ht tp: / / msdn.m icrosoft .com/ t r t r/ library/ system .windows.form s.imemode.aspx adresini inceleyebilirsiniz.

    I sMd iCon t a in er : Burası ise mdi özelliğini belir ler yani ana form içinde yeni form lar açılmasını sağlar ana

    form um uza eklediğim iz yeni form ların MdiParent ' i this yani ana formum uz olarak ayarlanmalıdır . Ġler iki

    konularda bir MdiForm uygulama örneği yapılacakt ır ama ön bilgi olarak Ģu örneği verebilir im . PhotoShop

    programında bir kaç tane farklı çalıĢm a açabiliyoruz ve bunların hepsi PhotoShop'un ana penceresinin içinde

    açılıyor yani bu pencere dıĢına çıkarılaam ıyor öyle düĢünebilir iz.

    Key Pr ev iew : bu özellik false iken form üzerindeki kont rollerim izden hangisi focus ise onun keypres event i

    yada istenilen herhangi bir key event i çalıĢır. am a bu özelliği t rue yaparsak focuslanan kont rolden önce

    form um uzun istediğim iz key event ini tet ikleyebilir iz.

    Lang u age : Form um uzun dilini seçer. Formumuzun kont rollerini farklı dillere göre uyarlayabilir iz. Default

    seçilirse sistemin kurulu olduğu dili seçer.

    Lock ed : Default olarak false olan bu özellik t rue yapılırsa form ' umuz tasarım anında ve çalıĢma anında

    çalıĢt ığı yere sabit lenir. Boyunu ve yer ini değiĢt irmeye izin vermez.

    Main Men u St r ip : Menü st r ip ekliyse bunlardan hangisinin formumuzun ana m enüsü olacağını seçmem izi

    sağlar.

    Max im izeBox : Sağ üst te bulunan simge-küçült / büyült -kapat butonlarından küçült / büyült olanını deakt if

    yapm ayı sağlar.

    Max im u m Size : Form um uzun maximum alabileceği boyut lar ı ayarlam amızı sağlar.

    M in im izeBox : Yine sağ üst t e bulunan sim ge durumuna küçültme ve boyutunu küçültme yapan butonları

    kaldırm ayı sağlar.

    M in im u m Size : Form umuzun m inum um alabileceği boyut ları ayarlam amızı sağlar.

    Op aci t y : Formumuzun saydam lığını ayar lamamızı sağlar. % 100 ise tam görünür ve düĢürdükçe saydam hale

    gelir.

    Pad d in g : Forma eklenen cont roller in form un kenar larına olan uzaklık referansını ver ir. Örneğin Left değerini

    50 verdiğim izde; form a cont rol sürüklerken cont rol soldan 50px değerinde olduğunda bunu belirten bir referans

  • 2 2

    çizgisi çıkar.

    Rig h t ToLef t : Formun Text ini sağa yada sola alm ayı sağlar.

    Rig h t ToLef t Lay ou t : RightToLeft ile beraber kullanılır ve formun sağ üst te bulunan kapat küçült sim ge

    butonlarını sola alır. Bu özellik genellikle sağdan sola yazılan diller için kullanılır.

    Sh ow I con : Form un text inin yazdığı yerdeki iconu gizlemeyi/ göstermeyi sağlar.

    Sh ow I n Task bar : Form çalıĢtığında görev çubuğunda gözüküp gözükm eyeceğini ayar lam ayı sağllar.

    Size : Form un boyut larını elle girmeyi sağlar.

    SizeGr ip St y le : Formun sağ alt köĢesinde boyut landır ılabileceğini gösteren üçgeni göstermeyi sağlar.

    St ar t Po si t i on : Formun çalıĢt ığında ekranın neresinde olacağını belir lemeyi sağlar .

    Manual: Locat ionda belirlenen yerde form u açar.

    CenterScreen: Ekranın tam ortasında form u açar.

    WindowsDefaultLocat ion: Size‟da belir lenen boyut ta ĠĢlet im sisteminin varsayılan konumunda form u

    açar.

    WindowsDefaultBounds: ĠĢlet im sisteminin varsayılan boyut ve konumunda form u açar.

    CenterParent : Bu özellik ebeveyn form kullanım ında geçerlidir. Form ebeveyn form un merkezinde açılır .

    Tag : Formumuzun arkada tutacağı et iket i verir . Burada object olarak değerler tutulabilir ve get ve set

    edilebilir .

    Tex t : Burası form un üst teki yazısını değiĢt irmem izi sağlar.

    Top Most : Burası t rue yapıldığında form um uz açık olan tüm pencereler in veya program ların önünde olmayı

    sağlar.

    Tr an sp ar en cy Key : Burada seçeceğim iz renk ile form um uzda o seçt iğim iz renkte olan alanları t ransparan

    yapar.

    UseW ai t Cu r sor : Cursorun form üzerine geldiğinde beklem e iconunu kazanmasını sağlar.

    W in do w St at e : Formum uzun açılıĢta ayarlandığı boyut ta veya simge durum unda veya tam ekran olarak

    açılmasının seçim ini sağlar.

    Normal: Program çalıĢınca formu belir lenen boyut ve yerde göster ir .

    Minim ized: Program çalıĢınca formu sim ge durum una küçültülm üĢ olarak baĢlat ır .

    Maxim ized: Program çalıĢınca formu ekranı kaplam ıĢ olarak baĢlat ır .

    3 .Nesn eler

    3 .1 . Bu t on

    Text Özelliği: But ton‟un üzerindeki m et inle ilgili iĢlemler yapılır .

    private void button1_Click(object sender, EventArgs e) { button1.Text = " Tı kl andı "; }

    Yukarıdaki örnekte formda bir adet buton bulunmaktadır. Buton çift t ıklat ılıp yukarıdaki kod yazıldığında

    butonun text ‟i Tıklandı olarak değiĢir.

    backcolor Özelliği: But ton‟un arkaplan rengi ilgili iĢlem ler yapılır .

    private void button1_Click(object sender, EventArgs e) { button1.BackColor = Color.Blue; }

    Enabled Özelliği: But ton‟un akt if veya pasif yapar. t rue ise akt if , false ise pasift ir .

    private void button1_Click(object sender, EventArgs e)

  • 2 3

    { button1.Enabled = False; }

    visible Özelliği: But ton‟un görünmezliği ilgili iĢlem ler yapılır . t rue ise görünür,false ise görünmez.

    private void button1_Click(object sender, EventArgs e) { button1.Visible = false; }

    forecolor Özelliği: But ton‟un yazı rengi ile ilgili iĢlemler yapılır.

    private void button1_Click(object sender, EventArgs e) { button1.ForeColor = Color.Red; } AcceptBut ton Özelliği: Akt if formda Enter tuĢuna basıldığı zaman hangi butonun çalıĢacağını belirt ir . Form seçili

    iken propert ies‟ten AccepBut ton özelliğinden Enter‟e basınca hangi butonun çalıĢmasını ist iyorsak açılır

    menüden o butonu seçiyoruz veya kodlar la aĢağıdaki gibi yapabilir iz.

    CancelBut ton Özelliği: Akt if form daEsc tuĢuna basıldığı zam an hangi butonun çalıĢacağını belirt ir .Form seçili

    iken propert ies‟ten AccepBut ton özelliğinden Esc‟ye basınca hangi butonun çalıĢm asını ist iyorsak açılır menüden

    o butonu seçiyoruz veya kodlarla aĢağıdaki gibi yapabilir iz.

    Örnek: Kodlar la atama iĢlem i aĢağıdaki Ģekildedir . Form‟un load‟na yazmam ın sebebi form çalıĢt ığı anda kodlar

    uygulansın diye.

    private void buton3_Load(object sender, EventArgs e) { AcceptButton = button1; CancelButton = button2; }

    Yukarıdaki örnekte formumuzun name‟i buton3 „tür. Yukarıdaki kodu form seçiliyken F7‟ye basarak açılan

    pencereye yazmalıyız.

    Ön em l i No t : Yukar ıda kodlar ile yapt ığımız iĢlem ler in çoğunu nesneyi seçerek propert ies penceresindende

    yapabilirsiniz.

    3 .2 . Label

    Kullanıcıya form üzerinde bilgi verm ek için kullanılır. Bu nesneye kullanıcı tarafından bilgi girmek dıĢında

    text kutusuna çok benzer.

    • Text özelliği ile içindeki bilgilerin yer leĢim i TextAlignözelliği ile belirlenebilir .

    • I m age özelliği ile Label içer isinde resim göster ilebilir .

    • I m ageAlign özelliği ile resm in yer leĢmini belir leyebilirsiniz.

    • I m ageList ve Im ageIndex özellikleri ilede resim gösterilebilir .

    • Bu kont rolün önem li özelliklerinden bir i AutoSizeözelliğidir . Bu özellik norm alde false dir .

    BackColor : Tahm in edebileceğiniz gibi Label‟ın arka plan rengini ayar lar.

    BorderStyle : Label‟ın kenarlarının nasıl olacağını belir ler.

    Font : Font ‟unu ayarlam am ıza yarar. Boyut , yazı t ipi gibi özellikler i barındırır .

    Örnek: textbox‟a yazılan değeri label‟a aktaran kodu yazınız.

    private void textBox1_TextChanged(object sender, EventArgs e) { label1.Text = textBox1.Text.ToString(); }

    Yukarıdaki kodun textbox‟a çift t ıklandığında açılan pencereye yazıldığını unutmayalım .

    Örnek: Ģim di textbox‟a yazılan değeri butona basıldığında label‟a aktaran kodu yazılım .

    private void button1_Click(object sender, EventArgs e)

  • 2 4

    { string kelime; kelime = textBox2.Text; label2.Text = kelime; //label2.Text = textBox2.Text;

    / / Kı sa ol ar ak yukar ı daki kodda yazı l abi l i r . }

    3 .3 . Tex t Box

    TextBox kullanıcıdan bilgi gir iĢi gereken program larım ızda bu kont rolü sağlam ak için kullandığım ız nesnem izdir .

    Mult iLine özelliği ile birden fazla sat ır gir iĢi sağlanabilir .

    Bilgi değiĢikliğinde iĢlem yapılması istendiğinde TextChanged olayı kullanılır .

    Text kutusu içindeki yazıların tümü aynı Font özelliğine sahipt ir.

    Text Özelliği: textBox‟ta bulunan m et inle ilgili iĢlemlerde kullanılır.

    Örnek: textbox1‟deki yazıyı textbox2‟ye ve label1‟e yazdıralım .

    private void button1_Click(object sender, EventArgs e) { textBox2.Text = textBox1.Text; label1.Text = textBox1.Text; }

    Clear Özelliği: textBox‟ı tem izlemek için kullanılır .

    private void button2_Click(object sender, EventArgs e) { textBox2.Clear();// yada t ext Box2. Text =” ” ; }

    backcolor Özelliği: textBox‟ın arka plan rengi ile ilgili iĢlem ler yapılır .

    private void button3_Click(object sender, EventArgs e) { textBox2.BackColor = Color.Gray; }

    PasswordChar Özelliği: textbox‟ın belir li bir karakterle yazılmasını sağlar. ġ ifre gir iĢlerinde kullanılır. Mesela Ģifre

    gir iĢler inde karakterler gözükmez. Karakter ler yer ine yıldız iĢaret ini görürüz. ĠĢt e bu iĢlemi bu özellik sayesinde

    belirleriz. Burada dikkat edilecek nokta aĢağıdaki komut sat ır ının form un yüklem e bölümüne yazılmasıdır .

    private void sifrekontrol_Load(object sender, EventArgs e) { textBox2.PasswordChar=(char)42; }

  • 2 5

    Mult iLine Özelliği: Yazım iĢlerini birden fazla sat ırda yapm ak için kullanılır. textBox‟ın üst sağındaki küçük ok‟a

    t ıklayın ve Mult iLine‟ı seçin.

    MaxLength Özelliği: textBox‟a m aksim um kaç karakter gir ileceğini belir ler.

    private void sifrekontrol_Load(object sender, EventArgs e) { textBox2.MaxLength = 10; }

    CharacterCasing özelliği: Bu özellik sayesinde textbox içresindeki değerlerin büyük ya da küçük olm ası sağlanır.

    Özellikle ver iler veri tabanına kaydedilirken tüm veriler in küçük karakter yazılması kolaylığını sağlar.

    private void Form1_Load(object sender, EventArgs e) { textBox1.CharacterCasing = CharacterCasing.Lower; }

    3 .4 . Ch eck Box

    Checkbox birçok seçenek arasından bir veya daha fazla seçim yapm amızı sağlayan araçt ır . Mesela ilgi

    alanlarınızı sorduğumuzda bir yada daha fazla ilgi alanınız olabilir bunun gibi çoklu seçim yapt ırm ak istediğim iz

    yerlerde checkbox nesnesini kullanırız.

    Text Özelliği: checkBox‟ın yanındaki met inle ilgili iĢlem ler yapılır.

    Yandaki örnekte t ıkla butonuna basıldığında checkBox‟ın text i

    label1‟ yazılacak.

    private void button1_Click(object sender, EventArgs e) { label1.Text = checkBox1.Text; }

    Burada dikkat edilecek nokta checkBox‟ın seçili olmasının

    gerekm ediğidir .

    Checked Özelliği: checkBox‟ın en önem li özelliğidir . checkBox‟ın seçili olup olm adığı ile ilgili iĢlemler yapılır. True

    ise seçili, false seçili değildir.

    Örnek: Gir ilen ürün fiyat ı ve kdv‟ye göre ödenecek tutarı hesaplayan c# .net kodlarını yazınız.(checkbox iĢaret li

    ise tutara % 5 Öğrenci indir im i uygulanacak.)

    private void button1_Click(object sender, EventArgs e)

    { Double fiyat, kdv, tutar; fiyat = double.Parse(textBox1.Text); kdv = (double.Parse(textBox2.Text)/100); / / t ext boxdaki değer l er i doubl e yapt ı k tutar = fiyat +(fiyat * kdv); if (checkBox1.Checked==true) { tutar-=tutar*0.05; } label4.Text = tutar.ToString();

    }

  • 2 6

    Örnek: Basit bir hesap m akinesi yapım ı.

    private void button1_Click(object sender, EventArgs e) { double topla, cikar, carp, bol; if (checkBox1.Checked) { topla = int.Parse(textBox1.Text) + int.Parse(textBox2.Text); MessageBox.Show(topla.ToString(),"Toplam"); } if (checkBox2.Checked) { cikar = int.Parse(textBox1.Text) - int.Parse(textBox2.Text); MessageBox.Show(cikar.ToString(),"Fark"); } if (checkBox3.Checked) {

    bol = int.Parse(textBox1.Text) / int.Parse(textBox2.Text); MessageBox.Show(bol.ToString(), " Böl " ); } if (checkBox4.Checked) { carp = int.Parse(textBox1.Text) * int.Parse(textBox2.Text); MessageBox.Show(carp.ToString(), " Çar p" ); }

    CheckState : CheckBox ın baĢlangıçtaki durumunu belirten özellikt ir. Un ch eck ed / Ch eck ed / I n det er m in at e

    değerler ini alır.

    backcolor Özelliği: checkBox‟ın arkaplan rengi ilgili iĢlem ler yapılır .

    private void button1_Click(object sender, EventArgs e) { label1.Text = checkBox1.Text; checkBox1.BackColor = Color.Red; }

    Enabled Özelliği: checkBox‟ın akt if veya pasif yapar. True ise akt if , false ise pasift ir .

    private void button1_Click(object sender, EventArgs e) { checkBox1.Enabled = false; }

    Visible Özelliği: checkBox‟ın görünmezliği ilgili iĢlemler yapılır . True ise görünür ,false ise görünm ez.

    private void button1_Click(object sender, EventArgs e) { checkBox1.Visiable = false; }

    3 .5 . Ch eck edList Box

    Çoklu seçm e Ģansını bize sunan CHECKEDLI STBOX bileĢeni birçok durumda gerçekten iĢim izi

    kolaylaĢt ırm aktadır . Normal listbox ile kullanım ı hemen hem en benzerdir .

    Selectedindex: Seçilen liste elem anının sıra numarasını verir .

    I tem s.Count : Listedeki tüm elemanların toplam sayısını ver ir. Textbox1.Text= Checkedlistbox1. I tem s.Count

    Checkeditem s.count : Seçili olan elem anların sayısını verir .

    Selecteditem : Hangi check seçili ise onun adını verir .

    I tem s.Contains: Tüm liste içeriğini parantez içinde verilen değerle kont rol eder. Değer varsa t rue, yoksa false

    dır.

    Örnek: MaaĢ hesap program ı yapalım .

  • 2 7

    private void button1_Click(object sender, EventArgs e) { int deger=100; double tutar, toplamtutar, kesinti; tutar = double.Parse(textBox1.Text); kesinti = tutar * 0.10; textBox2.Text = kesinti.ToString();

    //int adet = checkedListBox1.Items.Count; if (checkedListBox1.GetItemChecked(0)) / / Bi r i nci seçi l mi şmi { deger += 20; } if (checkedListBox1.GetItemChecked(1)) { deger += 10; } if (checkedListBox1.GetItemChecked(2)) { deger += 10; } if (checkedListBox1.GetItemChecked(3)) { deger += 5; } toplamtutar = (tutar * deger/100)-kesinti; textBox3.Text = toplamtutar.ToString(); } } }

    3 .6 . Co m bo Box

    Com bobox açılır liste kutusunda bulunan elem anlardan bir tanesinin

    seçilm esi durumunda kullanılan nesnedir . Com bobox içindeki elem anlar

    I tem s özelliğinden ayarlanır .

    I tem s.Add Özelliği: ComboBox‟a elem an eklemek için kullanılır .

    Örnek: textBox‟a yazılan elem anı com boBox‟a ekleyelim .

  • 2 8

    private void button1_Click(object sender, EventArgs e) { if (comboBox1.Items.IndexOf(textBox1.Text)!=-1) { MessageBox.Show(" Gi r di ğini z şehi r zat en var " ," Uyar ı " ,MessageBoxButtons.OK); } else { comboBox1.Items.Add(textBox1.Text); }

    Text Özelliği: ComboBox‟ın gir ilen , seçilen veya gözüken elemanı tem sil eder .

    Form çalıĢt ırıldığında hangi elemanın seçili olarak görünmesini

    ist iyorsak onu com boBox1= ”Seçili olm ası istenen eleman”

    Ģeklinde yazmalıyız. Tabi bu sat ır form1_load kısm ına

    yazılmalıdır. Bu özellik aynı zamanda seçili elemanın tespit

    edilmesinde de kullanılabilir .

    private void Form1_Load(object sender, EventArgs e) { comboBox1.Text = "Manisa"; }

    Sel ect edi ndex Özel l i ği :

    I tem s Özelliği: ComboBox‟ın eleman içeriğini öğrenmek için kullanılır. Text özelliğinden farklı olarak eleman

    numarası kullanılır .

    comboBox1.Text = comboBox1.Items[0].ToString();

    I tem s.Clear Özelliği: Com boBox‟ı tem izlemek için kullanılır .

    private void button1_Click(object sender, EventArgs e) { comboBox1.Items.Clear(); }

    I tem s.Count Özelliği: Com boBox‟taki eleman sayısını ver ir.

    I tem s.IndexOf Özelliği: ComboBox‟ta elem an aram ak için kullanılır .Eğer belirt ilen elem an var ise sıra

    numarasını , yok ise -1 değerini döndürür.

    I tem s.Contains Özelliği: Com boBox‟ta elem an aramak için kullanılır .Eğer belir t ilen eleman var ise t rue , yok

    ise false değerini döndürür.

    Sorted özelliği: True/ False değerler inden bir ini alır . Combobox içindeki elemanları alfabet ik olarak sıralamak için

    kullanılır . Bu özellik form yüklenirken kullanılmalıdır .

    com boBox1.Sorted= t rue;

    3 .7 . Li st Box

    Listbox ver ilerin sat ır lar halinde listelendiği Visual Studio

    nesnesidir. ListBox' a elem an ekleme ve silme

    iĢlemler i I tem s özelliğinden yapılır.

    I tem s.Add Özelliği: listBox‟a eleman eklem ek için kullanılır .

    private void button1_Click(object sender, EventArgs e)

  • 2 9

    { listBox1.Items.Add(textBox1.Text); }

    I tem s.Clear Özelliği: listBox‟ı tem izlemek için kullanılır .

    private void button2_Click(object sender, EventArgs e) { listBox1.Items.Clear(); }

    I tem s.Count Özelliği: listBox‟taki eleman sayısını ver ir.

    I tem s.IndexOf Özelliği: listbox‟ta eleman aram ak için kullanılır.Eğer belir t ilen elem an var ise sıra num arasını ,

    yok ise -1 değerini döndürür.

    Örnek: Yukarıdaki örneği listBox‟ın içersinde eklemek istediğim iz eleman olup olm adığını kont rol edecek Ģekilde

    düzenleyelim .

    private void button1_Click(object sender, EventArgs e) { if (listBox1.Items.IndexOf(textBox1.Text)==-1) { listBox1.Items.Add(textBox1.Text); } else { MessageBox.Show(" Ekl emek İ st edi ği ni z El eman mevcut"," Uyar ı " ,MessageBoxButtons.OK,MessageBoxIcon.Error); } }

    I tem s.Contains Özelliği: listBox‟ta eleman aramak için kullanılır. Eğer belir t ilen eleman var ise t rue, yok

    ise false değerini döndürür.

    Text Özelliği: listBox‟ın gir ilen, seçilen veya gözüken elemanı temsil eder.

    Örnek: AĢağıdaki uygulamayı gerçekleĢt ir iniz.

    3 .8 . Rad ioBu t t on :

    Radio buton çok seçenek arasından bir tane seçim yapm am ızı sağlayan araçt ır . Mesela cinsiyet sorduğum uzda

    ya erkekt ir ya da kadın bunun gibi tek seçim yapt ırmak istediğim iz yer lerde radio buton nesnesini kullanır ız.

    Text Özelliği: Radio Butonun et iket yazısını değiĢt irmemizi sağlar. radioBut ton1, radioBut ton2,…

    private void button1_Click(object sender, EventArgs e) { label1.Text = radioButton1.Text; }

  • 3 0

    Bu örnekte butona t ıkladığım ızda label1‟in text i radiobutonun text iyle değiĢir.

    backcolor Özelliği: radiobut ton‟un arka plan rengi ilgili iĢlemler yapılır.

    private void button1_Click(object sender, EventArgs e) { radioButton1.BackColor = Color.Beige; }

    Enabled Özelliği: radiobut ton‟un akt if veya pasif yapar. t rue ise akt if, false ise pasift ir .

    visible Özelliği: radiobut ton‟un görünm ezliği ilgili iĢlem ler yapılır. True ise görünür, false ise görünmez.

    Checked Özelliği: radiobut ton‟un en önem li özelliğidir. radiobut ton‟un seçili olup olmadığı ile ilgili iĢlem ler yapılır.

    True ise seçili, false seçili değildir .

    Örnek: Hangi radiobut ton seçili ise label2‟ye onun text bilgisi yazılsın.

    private void button1_Click(object sender, EventArgs e) { if (radioButton1.Checked) { label2.Text = radioButton1.Text; } if (radioButton2.Checked) { label2.Text = radioButton2.Text; } if (radioButton3.Checked) { label2.Text = radioButton3.Text;

    } }

    Örnek: Bir otoparkta otomobiller 1 saat için 4 TL, m inibüsler 1 saat için 5 TL ve otobüs/ kam yon ise 6 TL

    ödemektedirler. Araç türünü seçip kaldığı süre gir ildiği zaman ödenecek tutar ı görüntüleyen C# program ını

    yazınız.

    private void button1_Click(object sender, EventArgs e) { int s, p = 0; s=int.Parse(textBox1.Text); if (radioButton1.Checked) { p = s * 4; } if (radioButton2.Checked) { p = s * 5; } if (radioButton3.Checked) { p = s * 6;

    } MessageBox.Show(" Ödenecek Tut ar : " +p.ToString()+" TL"," Ödeme Bilgisi",MessageBoxButtons.OK,MessageBoxIcon.Information); }

    3 .9 . Gr ou pBox

    Nesneler i gruplamak için kullanılır . groupbox kullanm a sebeplerini yazalım .

  • 3 1

    1-Form da birden fazla radiobut ton gurubumuz olabilir . Aynı anda her gruptan da bir tane radiobut ton seçm emiz

    gerekebilir . Bu durumda groupBox kullanmamız gerekir . AĢağıda örnek bir form ver ilm iĢt ir . Groupbox

    kullanmayıp bütün radiobutonları forma eklerseniz sadece bir radiobuton seçebilirsiniz. Ama aĢağıdaki

    gibi groupbox ekleyerek her gurupta farklı seçim yapabilir iz.

    2-Birden fazla nesneye aynı anda iĢlem yapt ır ılabilir. Mesela ekranda 10 tane textbox var.Program ın herhangi

    bir yer inde bunları gizlememiz gerekiyor. 10 tane kod kullanmamız gerekiyor.

    ( textBox1.Visible= t rue; textBox2.Visible= t rue; textBox3.Visible= t rue; … devam eder.) Ama groupBox‟la

    gruplarsak tek bir kodla bu iĢlem i yapabilir iz.(groupBox1.Visible= t rue; )

    3-Form düzenli olsun diye kullanılabilir .

    Text Özelliği: GroupBox‟ın yanındaki m et inle ilgili iĢlem ler yapılır.

    backcolor Özelliği: groupBox‟ın arka plan rengi ilgili iĢlem ler yapılır .

    Enabled Özelliği: groupBox‟ın akt if veya pasif yapar. True ise akt if, false ise pasift ir .

    visible Özelliği: groupBox‟ın görünmezliği ilgili iĢlemler yapılır . True ise görünür , false ise görünmez.

    Örnek: AĢağıdaki gibi bir form görüntüsü hazırlayalım . Kullanıcı bekar‟ı ( radiobut ton1) t ıkladığında çocuk sayısı

    gözükmesin, evli ( radiobut ton2) t ıkladığında gözüksün. Bu yüzden form _load‟da groupbox2′ yi gizliyoruz.

    radiobut ton2′ nin (evli radiobutonu) checkedChanged‟ne yani seçildiğinde olayına groupbox2′ yi formda

    gösterme kodunu yazıyoruz. radiobut ton1′ nin (bekar radiobutonu) checkedChanged‟ne yani seçildiğinde olayına

    groupbox2′ yi form da gizleme kodunu yazıyoruz.

    private void Form2_Load(object sender, EventArgs e) { groupBox2.Visible = false; } private void radioButton1_CheckedChanged(object sender, EventArgs e) { groupBox2.Visible = false; }

  • 3 2

    private void radioButton2_CheckedChanged(object sender, EventArgs e) { groupBox2.Visible = true; } private void button1_Click(object sender, EventArgs e) { string medeni; if (radioButton1.Checked) { medeni=radioButton1.Text; MessageBox.Show("Medeni haliniz: "+ medeni); } if (radioButton2.Checked) { medeni=radioButton2.Text; MessageBox.Show("Medeni haliniz: "+ medeni); } }

    3 .1 0 . Pan el

    Nesneler i guruplamak için kullanılır . groupbox‟tan farkı kaydırm a çubukları eklenm esidir .

    1-Form da birden fazla radiobut ton gurubum uz olabilir .Aynı anda her gruptanda bir tane radiobut ton seçmem iz

    gerekebilir . Bu durum da panel ve groupbox kullanm ak gerekir .

    2-Birden fazla nesneye aynı anda iĢlem yapt ırılabilir .Mesela ekranda 10 tane textbox var.Programın herhangi bir

    yerinde bunları gizlememiz gerekiyor.10 tane kod kullanm amız gerekiyor.

    ( textBox1.Visible= t rue; textBox2.Visible= t rue; textBox3.Visible= t rue; … devam eder.) Ama groupBox‟la

    gruplarsak tek bir kodla bu iĢlem i yapabilir iz.(panel1.Visible= t rue; )

    3-Form düzenli olsun diye kullanılabilir .

    backcolor Özelliği: panel‟ın arkaplan rengi ilgili iĢlemler yapılır.

    Enabled Özelliği: panel‟ın akt if veya pasif yapar. True ise akt if , false ise pasift ir .

    visible Özelliği: panel‟ın görünmezliği ilgili iĢlemler yapılır . True ise görünür , false ise görünmez.

    Örnek: comboBox‟tan seçilen panelin görünür hale gelmesi.

    private void Form1_Load(object sender, EventArgs e) { panel1.Visible = false; panel2.Visible = false; panel3.Visible = false; panel1.BackColor = Color.Red; panel2.BackColor = Color.Black; panel3.BackColor = Color.Brown; } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (comboBox1.Text=="Panel1") { panel1.Visible = true; panel2.Visible = false;

    panel3.Visible = false; } else if (comboBox1.Text=="Panel2") { panel2.Visible = true; panel1.Visible = false; panel3.Visible = false; } else

  • 3 3

    { panel3.Visible = true; panel2.Visible = false; panel1.Visible = false; } }

    3 .1 1 . Pict u r eBox

    Programa görsellik katmak için bazı yer lere resim ler ekleyebilir iz. Bunun için picturebox kullanım ı basit bir

    yoldur . Ayrıca pictureBox‟ım ıza internet üzer inde de resim yükleyebiliriz.

    PicureBox‟ım ıza resim eklem eye gelince [ Design] kısm ından da picurebox‟a t ıklayıp sağ üst ten ok iĢaret ine

    t ıklayıp choose image ile resim seçebilir iz.

    pictureBox1.Image = Im age.From File( "C: \ \ denemeResim .jpg") ;

    Yukarıdaki kodu kullanabilir iz. Eğer internet üzer indeki 1resim i yüklemek istersek aĢağıdaki kodu kullanabiliriz

    pictureBox1.ImageLocat ion = "ht tp: / / www.gorselprogram lama.com/ logo.gif" ;

    Eğer program ımızın çalıĢt ığı dizininden bir resm i açmak istersek

    pictureBox1.ImageLocat ion = "resim .jpg" ; kodunu kullanabiliriz.

    Örnek: ComboBox‟ta seçilen isme göre pictureBox‟ta resim görüntüleme

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (comboBox1.Text == "Araba 1") pictureBox1.ImageLocation = "araba1.jpg"; else if (comboBox1.Text == "Araba 2") pictureBox1.ImageLocation = "araba2.jpg"; else if (comboBox1.Text == "Araba 3") pictureBox1.ImageLocation = "araba3.jpg"; else if (comboBox1.Text == "Araba 4") pictureBox1.ImageLocation = "araba4.jpg"; else if (comboBox1.Text == " Seçi ni z" ) pictureBox1.ImageLocation = ""; else MessageBox.Show(" Li st ede muvcut deği l ! " );

    }

    3 .1 2 .İ m ag eList

    imagelist kontrolü ,form umuzda resim ler i kullanacaksak iĢim ize yarayacakt ır.Bilindiği gibi resim le alakalı bir

    diğer kont rol olarak picturebox bulunmaktadır, imagelist te depoladığım ız resim ler i indis numaralarıyla

    pictureboxta görüntüleyebilir iz. Örnek olarak formumuzda birden fazla picturebox var ve biz bu resim leri

    runt ime'da değiĢt irmek ist iyoruz. Gerekli kodlardan sonra formumuzdaki resim ler i dinam ik olarak değiĢt irebilme

    imkanı doğabilmektedir

    3 .1 3 . Tim er

    Ġstediğim iz komut ların belir lediğim iz zaman aralığında tekrar lamasını ist iyorsak t im er kullanabilir iz.

    Ġnterval Özelliği: Timer‟ın çalıĢacağı zaman bölümüdür. Zaman m ili saniye

    cinsindedir . Mesela her 1 saniyede kodları çalıĢt ırm ak istersek interval

    1000, her 2 saniyede kodları çalıĢtırmak için interval‟i 2000 yapm amız

    gerekir .

    Enabled Özelliği: Değeri t rue ise t imer‟ın çalıĢm asını, false ise

    durdurulm asını sağlar. Yani enabled değeri t rue ise t imer‟ın Tick olayına

    yazılan kodlar çalıĢır, false ise çalıĢm az.

    Tick Olayı : Bu olaya yazılan kodlar interval ile belir lenen zam anda tekrar

    edilir .

  • 3 4

    Örnek: BaĢla ya basınca her 1 saniyede listbox‟a c# öğreniyorum yazsın. Dur t ık lanınca eklem e iĢlemi

    durdurulsun.

    private void Form1_Load(object sender, EventArgs e) { timer1.Enabled = false; timer1.Interval = 1000; } private void button1_Click(object sender, EventArgs e) { timer1.Enabled = true; } private void button2_Click(object sender, EventArgs e) { timer1.Enabled = false; } private void timer1_Tick(object sender, EventArgs e) { listBox1.Items.Add(" C# Öğr eni yor um" ); }

    Örnek: BaĢlaya t ıklanınca her saniyede sayı bir bir art ır ılıp label‟e yazılsın. Dur denilince iĢlem durdurulsun.

    public Form2() { InitializeComponent(); } int sayac = 0; private void Form2_Load(object sender, EventArgs e) { timer1.Enabled = false; timer1.Interval = 1000;

    } private void button1_Click(object sender, EventArgs e) { timer1.Enabled = true; } private void button2_Click(object sender, EventArgs e) { timer1.Enabled = false; } private void timer1_Tick(object sender, EventArgs e) { sayac++; label1.Text = sayac.ToString(); }

    3 .1 4 .Su b St r in g Met od u

    Met inlerdeki bir harf ya da harfler grubunu seçm ek için kullanılır . I nteger ver i t ipinde bir ya da iki tane

    paramet re alır .

    string labelDegisken = "www. akhisarmyo.cbu.edu.tr.com"; string Degistir = labelDegisken.Substring(4,10); MessageBox.Show(Degistir.ToString()); Yukarıdaki kod da 4 yazdığım ız kısım ile a harfinden baĢlayarak 10 karakter alıp değiĢkene at ıyoruz.

    Bu arada ilk baĢtaki w harfinin index değeri sıfırdan baĢlar. Yani bizim 4 olarak yazdığım sayı aslında 5.

  • 3 5

    karakteri ifade etmektedir .

    ġ imdi Subst ring m etodunun baĢka t ür lü olanını inceleyelim .

    string labelDegisken = "www. akhisarmyo.cbu.edu.tr.com"; string Degistir = labelDegisken.Substring(4); MessageBox.Show(Degistir.ToString());

    Yukarıdaki kodda ise sadece Subst r ing kısm ında 4 yazılm ıĢ. Bu 5. karakterden baĢlayarak son karaktere kadar

    st r ing ifadeyi alıp değiĢkene at demekt ir. Yine burada da index olarak sıfırdan baĢlar.

    AĢağıdaki örnekte textBox‟a yazılan yazı label‟a aktarılmaktadır .

    private void button1_Click(object sender, EventArgs e) { //label1.Text=s.Substring(4); / / Yukar ı da 4. kar akt er den i t i bar en ger i kal anı yazar . //label1.Text = s.Substring(4,10); / / Yukar ı da 4. kar akt er den i t i bar en 10 karakter yazar. label1.Text = textBox1.Text.Substring(4,10); / / t ext Box' yazı l an i f adeni n 4. karakterinden itibaren 10 karakter yazar.

    / / kaç kar akt er yazı l acağı nı t ext box i l e al al ı m.

    3 .1 5 .Men u St r ip

    C# projelerim ize menü oluĢturmak için Too lb ox içindeki Men u St r ip nesnesini kullanacağız. Menü oluĢturma ve

    MenuSt rip nesnesinin özellikler i aĢağıdaki gibidir .

    Toolbox ta bulunan Menus&Toolbars bölümünden

    forma MenuSt r ip ekleyin.

    Form un üst tarafında beliren TypeHere bölümünü kullanarak

    menüler i ve alt menüler i oluĢturun.

    Menü oluĢturm a iĢlem i bit t ikten sonra menü item ‟lerine çift

    t ıklayarak açılacak form lar ı c# kodları ile bağlayın.

    Fo r m lar Ar ası Ver i Gön d er m e:

    C# ta form lar arasında ver i ve değiĢken gönderm ek mümkündür. Örneğin Form 2 den, Form 1 de kullandığınız

    bir değiĢkene eriĢebilir veya Form1 üzerindeki bir nesnede bulunan ver iyi değiĢkene aktararak diğer form larda

    kullanabilirsiniz. Bunun için değiĢkeni p u b l i c st a t ic olarak ayar lamak gerekir. Bu tür değiĢkenler part ial

    class içinde tanım lanmalıdır .

    AĢağıdaki örnekte m enust r ipte yeni kom utu verildiğinde yeni form açılır .

    public partial class Form1 : Form { public static int puan; public Form1() { InitializeComponent(); }

  • 3 6

    private void yeniToolStripMenuItem_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.Show(); this.Hide(); } private void button1_Click(object sender, EventArgs e) { puan = int.Parse(textBox1.Text); Form2 f2 = new Form2(); f2.Show(); this.Hide(); }

    Yukarıdaki örnekte puan değiĢkenini form 2‟de kullanalım .

    private void Form2_Load(object sender, EventArgs e) { label1.Text = Form1.puan.ToString(); }

    Form lar arası ver i alıĢ ver iĢinde ikinci yöntem ise aĢağıdaki

    gibidir.

    3 .1 6 .Con t ex Men u St r ip

    Form umuza sağ t ık m enüsü eklem ek için kullanulan araçt ır . Bu aracı seçmek için Toolbox‟tan ContextMenuSt r ip

    seçilir . Daha sonra menu de olmasını istediğim iz komut ları girmeliy iz.

    ContextMenuSt rip‟in formda kullanılması için form özellik lerinden ContextMenuSt r ip özelliğinden

    ContextMenuSt rip1