GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında...

40
GÖRSEL PROGRAMLAMA DERS NOTLARI ÖĞRENCĠNĠN : ADI : SOYADI : NUMARASI :

Transcript of GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında...

Page 1: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

GÖRSEL

PROGRAMLAMA

DERS NOTLARI

ÖĞRENCĠNĠN :

ADI :

SOYADI :

NUMARASI :

Page 2: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

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ımlama Kuralları ............................................................................................................................4

2.Temel Veri Türleri .............................................................................................................................................4

3.DeğiĢken Tanımlama.........................................................................................................................................5

4.Tip DönüĢümleri: ..............................................................................................................................................7

E.OPERATÖRLER ....................................................................................................................................................8

1.Aritmetiksel Operatörler ....................................................................................................................................8

2.Atama Operatörü ..............................................................................................................................................9

3.Artırma ve Azaltma Operatörleri .........................................................................................................................9

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

A.ĠLĠġKĠSEL VE MANTIKSAL OPERATÖRLER ............................................................................................................. 10

1.ĠliĢkisel Operatörler ........................................................................................................................................ 10

2.Mantıksal Operatörler ...................................................................................................................................... 10

3.Operatör Önceliği ........................................................................................................................................... 11

B.ġART ĠFADELERĠ ............................................................................................................................................... 11

1.If Ġfadesi ....................................................................................................................................................... 11

2.Ġçi Ġçe If Ġfadesi .............................................................................................................................................. 12

4.Switch Ġfadesi ................................................................................................................................................ 12

C.DÖNGÜ YAPILARI .............................................................................................................................................. 15

1.While Ġfadeleri ............................................................................................................................................... 15

2.For Ġfadeleri ................................................................................................................................................... 16

3.Do Ġfadeleri ................................................................................................................................................... 17

4.Break Ġfadeleri ............................................................................................................................................... 17

D.DiYALOG KUTULARI ........................................................................................................................................... 18

1.MessageBox Kullanımı ..................................................................................................................................... 18

2.InputBox Kullanımı ......................................................................................................................................... 19

E.HATA AYIKLAMA ................................................................................................................................................ 19

1.Try-Catch Bloğu ............................................................................................................................................. 19

2.Adım Adım Ġzleme .......................................................................................................................................... 19

MODÜL 3:NESNE TABANLI PROGRAMLAMADA WINDOWS UYGULAMALARI ...................................................................... 20

A.WĠNDOWS FORMLAR ......................................................................................................................................... 20

1.Windows Form Uygulaması OluĢturma .............................................................................................................. 20

2.Windows Form Özellikleri ................................................................................................................................. 20

3.Nesneler........................................................................................................................................................ 22

} ..................................................................................................................................................................... 37

4. Veri Tabanı ĠĢlemleri ...................................................................................................................................... 38

Page 3: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

2

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

Programın kodlanması sırasında bir programlama dili kullanılır. Kullanılacak programlama dili programcı

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

A.PROGRAM KURULUMU

http://www.microsoft.com/visualstudio/tur#products/visual-studio-express-products adresinde Indir

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

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

dosyasını bilgisayara inmeye baĢlar.

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

baĢlatılır.

Ön yükleme bittikten sonra bilgisayarın yediden baĢlatılması gerekecektir.

Bilgisayar açıldıktan sonra, BaĢlat/Tüm Programlar/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 belirten 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 girilerek görüntülenen Ģifre ilgili alana kopyalanarak onaylanır.

NOT: Ġstenirse Product Key penceresi kapatılarak 30 gün içinde daha sonra HelpRegister Product komutu ile

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

B.PROGRAMLAMA ORTAMI

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

için ihtiyaç duyulan her Ģeyi kapsar. Windows tabanlı uygulamanın forma dayalı kullanıcı arayüzü etkileĢimli

olarak tasarlanabilir. Nesne tabanlı programlama 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ı programlama yazılımı grafiksel uygulamalar için iki Ģablon sağlar: Windows Form

Application Ģablonu ve WPF Application Ģablonudur. Birbirine çok benzer bu iki Ģablondan WPF daha geliĢtirilmiĢ

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

1.Temel ĠĢlemler

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

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

Yeni bir uygulama açma:

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

Açılan pencerede Installed Templates bölümünden Visual C#, sağ taraftan Windows Form Application

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

Var olan uygulamayı açma:

Ġ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 komutu çalıĢtırılır.

Eğer ilk kez kaydediliyorsa ekrana Save Project penceresi gelecektir. Bu pencerede kayıt yeri belirlenir

ve isteniyorsa uygulama ismi değiĢtirilir.

Uygulamayı çalıĢtırma:

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

Page 4: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

3

çalıĢmaya (eğer bir değiĢiklik yapılmadıysa) ilk oluĢturulan form ile baĢlar. AçılıĢ formunu değiĢtirmek

için Program.cs içinde: Application.Run(new form1()); kodundaki form isminin değiĢtirilmesi gerekir.

2.Arayüz

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

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

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

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

Properties(4): Nesne özelliklerinin listelendiği sekme. (View menüsünden açılır veya kapatılır.)

Her bir formun Design(5) ve Kod görünümleri(6) bulunur. Design görünümü Form1.cs[Design] projenin

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

BoĢ bir forma 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()

{

Page 5: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

4

InitializeComponent();

}

}

}

C.ĠSĠM UZAYLARI

1.NameSpace

Ġsim uzayları (namespace) program yazmanın en önemli parçasıdır ve daha çok yazılan kodların tekrar

kullanılabilirliğini artırmak için geliĢtirilmiĢtir. Böylece hazır kodlar veya programcının daha önce oluĢturduğu

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

2.Using Ġfadesi

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

ifadesi ile programa dahil edilir.

3.Nesne Ekleme

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

yoluyla forma eklenebilir.

5.Nesneye Kod Yazma

Eknenen nesnenin Properties penceresinde Properties (1)

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

ulaĢılabilir. Örneğin button1 nesnesine tıklandığında yapılması istenen iĢlemler 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Ģken Tanımlama Kuralları

Hazırlanmakta olan bir programda, hangi değiĢkenlerin kullanılacağını programı yazmadan önce planlanması

önerilir. Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir.

DeğiĢkenlerin isimlendirilmesi de önemli bir konudur. Ġsimlendirme sırasında değiĢkenin kullanım amacını

anlatan kısa bir isim kullanılmalıdır. Genel olarak baĢka isimlendirme kuralları Ģunlardır:

Ġlk harf veya tamamı sayı olamaz. Mesela: “2nciYari” gibi olmaz.

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

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

Dilin anahtar kelimeleri değiĢken adı olamaz. Mesela: “main, write” gibi…

Türkçe ve özel karakterleri kullanmamaya çalıĢmalıyız. (Türkçe karakterler: ı,Ġ,Ģ,ġ,ç,Ç,ğ,Ğ,ö,Ö,ü,Ü)

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

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

2.Temel Veri Türleri

C# da iki çeĢit veri tipi vardır:

Değer Tipleri (Value type)

Referans Tipleri(Reference Type)

Değer tipleri veriyi direk olarak bellek bölgesinden alırken referans tipleri içinde veri değil adres bilgisi tutarlar.

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

farklı bağımsız değiĢken oluĢur. Referans tipleri ise eĢitleme sırasında değiĢkenlerin taĢıdıkları veri iĢaret

ettikleri adres kopyalanır. Böylece eğer iki referans değiĢkeni birbirine eĢitlediyse ve daha sonra bunlardan

Page 6: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

5

birinde bulunan veri değiĢtirilse ise otomatik 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 veri bilgisine ulaĢır.

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

NOT: CTS, veri tipinin .NET için de kullanılabilen tüm dillerdeki ortak ismidir.

Değer Tipleri (Value type)

C# Adı CTS KarĢılığı Açıklama Bellekte

Kapladığı Alan Max ve Min aralık ya da değeri

sbyte System.Byte 8 bit iĢaretli tamsayı

1 Byte -128 : 127

short System.Int16 16 bit iĢaretli tamsayı

2 Byte -32.768 : 32.767

int System.Int32 32 bit iĢaretli tamsayı

4 Byte -2.147.483.648 : 2.147.483.647

long System.Int64 64 bit iĢaretli 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.UInt16 16 bit iĢaretsiz tamsayı

2 Byte 0 : 65.535

uint System.UInt32 32 bit iĢaretsiz tamsayı

4 Byte 0 : 4.294.967.295

ulong System.UInt64 64 bit iĢaretsiz tamsayı

8 Byte 0 : 18.446.744.073.709.551.615

float System.Single 32 bit tek kayan sayı

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

(virgü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

(virgülün sağında ve solunda 15-16 basamak)

decimal System.Decimal 128 bit ondalıklı sayı

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

bool System.Boolean 2 Byte true ya da false

char System.Char Tek Karakter 2 Byte 16 Unicode karakterleri

Referans Tipleri(Reference Type)

C# Adı CTS KarĢılığı Açıklama

string System.String 16 Unicode karakter dizileri

object System.Object Bütün veri türlerinin türediği kök eleman

3.DeğiĢken Tanımlama

C# da değiĢkenler aĢağıdaki yapıda tanımlanırlar.

<veri tipi><değişken adı>;

Örnek:

int sayi = 4; //sayi isimli ilk değeri 4 olan integer tipinde bir değişken tanımlandı.

bool cevap; //cevap isimli bollean tipinde bir değişken tanımlandı.

cevap = false; //cevap değişkeni içine false değeri aktarıldı.

double yuzde = 98.32, ortalama = 35; //yuzde isimli ilk değeri 98.32 ve ortalama isimli ilk değeri 35

olan double tipinde bir değişken tanımlandı.

char karakter = 'A'; //karakter isimli ilk değeri A olan char tipinde bir değişken tanımlandı.

string sinif; //sinif isimli string tipinde bir değişken tanımlandı.

sinif= “ATL10”; //sinif değişkenine ATL10 verisi aktarıldı.

Page 7: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

6

Örnek: DeğiĢkene değer atama

a = 5; //Doğru; a’nın değeri 5 olur

a = a +5; //Doğru; a’nın eski değerine 5 eklenir

a + 5 =a; //Hatalı!

5 = a; //Hatalı!

a = a; //Gereksiz

Örnek: Form üzerine 1 adet buton ve 13 adet label nesnesi yerleĢtiriniz. button1_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;

Page 8: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

7

short b = 32767; //max değer

int c = 21474836;

long d = 9223372036854775807;

float f = 7.1234568f; //max 7 basamak, 8. basamağı yuvarladı

double g = 21212.3321;

decimal h = 7.9000000000000000000000000000M;

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

bool k = true;

char m = 'A';

string n = "Cok çalışmam lazım çok";

object p = 123;

object r = "Merhaba ASP";

object s = true;

label1.Text = "Byte değişken:" + a; //değişkenler yazdırılıyor.

label2.Text = "Short değişken:" + b;

label3.Text = "Integer değişken:" + c;

label4.Text = "Long değişken:" + d;

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

label6.Text = "Double değişken:" + g;

label7.Text = "1. Decimal değişken:" + h;

label8.Text = "2. Decimal değişken:" + i;

label9.Text = "Boolean değişken:" + k;

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

label1.Text = "String değişken:" + n;

label11.Text = "1. Object değişken:" + p;

label12.Text = "2. Object değişken:" + r;

label13.Text = "3. Object değişken:" + s;

}

}

}

NOT: Float veri tipindeki değiĢkene değer aktarımı için değerinin sonuna “F” karakteri, Decimal veri tipindeki

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

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

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

4.Tip DönüĢümleri:

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

Page 9: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

8

Tip KarĢılığı Kullanımı Tip KarĢılığı Kullanımı

bool Boolean Convert.ToBoolean() long Int64 Convert.ToInt64()

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

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

short Int16 Convert.ToInt16() double Double Convert.ToDouble()

ushort UInt16 Convert.ToUInt16() decimal Decimal Convert.ToDecimal()

int Int32 Convert.ToInt32() 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 masaüstü ve

web uygulamalarında textBox gibi bir kontrolden olabilir) bu değerin istenilen değiĢkene doğru tipte

atıldığının garanti edilmesi gerekir. Console.ReadLine() ile okunan veriler 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 tipi (eğer ekstra efor

harcanmazsa) sadece string olabilir. Kullanıcıdan sayısal bir değer alınırsa, bu değer string tipinde bir değiĢken

üzerinde taĢınabilir ve matematiksel bir iĢlemde kullanılamaz.

{

String fiyat;

fiyat=textBox1.Text;

int zamlifiyat=fiyat+15;//Derleme hatası

}

Çünkü toplama gibi bir matematiksel iĢleme sokulmaya çalıĢılan değiĢkenin değeri „15‟ olmasına rağmen veri

tipi herhangi bir tamsayı ya da ondalık sayı değil bu sayının text tabanlı temsilini yapan „string‟ dir. Burada

yapılması gereken; „15‟ verisini doğru tipte ele alabilmektir. Tam bu soruna yönelik bir çözüm vardır: Parse()

metodu. Bu metot, doğru tipte ele alınması gereken önceden –tanımlı tipler üzerinden

çağrılabilen (yukarıdaki senaryoda int üzerinden) bir üyedir. Bütün önceden tanımlı tiplerin Parse() metotları

vardır.

{

String fiyat;

fiyat=textBox1.Text;

int zamlifiyat=int.parse(fiyat)+15;

}

Parse() metodu bütün önceden tanımlı tipler üzerinden çağrılabilir; hangi tip üzerinden çağrılmıĢsa verinin string

temsilini, çağrıldığı tipe çevirir. Böylece verinin kendine özgü özelliklerinden faydalanılması

sağlanmıĢ olur.

E.OPERATÖRLER

1.Aritmetiksel Operatörler

Programlama dili bilinen dört iĢlemin aritmetik iĢleçlerini destekler: Toplama(+), çıkarma(-), çarpma(*)

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

Tüm iĢleçler tüm veri türlerine uygulanamaz. 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 veri türlerinde tüm aritmetik iĢleçleri kullanılabilir. Bununla

birlikte string türü değiĢkenler üzerinde artı(+) iĢleci dıĢında aritmetik iĢleçler kullanılamaz.

NOT: Aritmetik 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

Page 10: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

9

değeri 2.5‟tir. 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 durumlarda her zaman değerleri

aĢağıya yuvarlanır.

2.Atama Operatörü

Atama iĢlemleri = iĢareti ile yapılır. ĠĢaretin sağ tarafındaki değer, sol tarafa depolanır.

a = 5; //Doğru; a’nın değeri 5 olur

a = a +5; //Doğru; a’nın eski değerine 5 eklenir

a + 5 =a; //Hatalı!

5 = a; //Hatalı!

a = a; //Gereksiz

3.Artırma ve Azaltma Operatörleri

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

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

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

sayac++; //sonek artırma

++sayac; //önek artırma

sayac--; //sonek azaltma

--sayac; //önek azaltma

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

ya da 1 azaltılır ama iĢlem öncelik sırasından kaynaklanan farklılıklar doğabilir.

Örnek:

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Ģlemler için:

ĠġLEM AÇIKLAMA 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

Page 11: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

10

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

YAPILARI

A.ĠLĠġKĠSEL VE MANTIKSAL OPERATÖRLER

1.ĠliĢkisel Operatörler

KarĢılaĢtırma iĢlemlerinde kullanılan operatörlerdir.

== operatörü: Verilen iki ifadenin eĢit olup olmadığını

!= operatörü: Verilen iki ifadenin farklı olup olmadığını

< operatörü: Verilen birinci ifadenin ikinci ifadeden küçük olup olmadığını

> operatörü: Verilen birinci ifadenin ikinci ifadeden büyük olup olmadığını

>= operatörü: Verilen birinci ifadenin ikinci ifadeden büyük veya eĢit olup olmadığını

<= operatörü: Verilen birinci ifadenin ikinci ifadeden küçük veya eĢit olup olmadığını

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

2.Mantıksal Operatörler

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

sağlar.

&&(Ve - And) operatörü: Logic iki ifadenin'de doğru olması gereklidir.

Ifade1 Ifade2 Sonuç=Ifade1 && Ifade2

False False False

False True False

True False False

True True True

||(Veya - Or) operatörü: Logic Ġki ifadeden yalnızca birinin doğru olması yeterlidir

Ifade1 Ifade2 Sonuç=Ifade || Ifade2

False False False

False True True

True False True

True True True

!Not operatörü : Logic bir ifadenin değilinin alınması için kullanılır.

Ifade ! Ifade

True False

False True

Örnek:

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)

{

Page 12: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

11

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 <= 8));

}

private void button4_Click(object sender, EventArgs e)

{

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

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

label4.Text = Convert.ToString((a > 0) || (b <= 8));

}

3.Operatör Önceliği

Kategori Operatör Açıklama

Birincil () ,++, -- Parantez Artırma Azaltma

Çarpımsal *, /, % Çarpma Bölme Kalanı Bulma

Toplamsal +,- Toplama Çıkarma

KarĢılaĢtırma <, <=, >, >= Küçük Küçük veya eĢit Büyük Büyük veya eĢit

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

KoĢullu mantıksal &&, || Mantıksal AND Mantıksal OR

NOT: Aynı önceliğe sahip operatörlerde ise soldaki önceliklidir.

B.ġART ĠFADELERĠ

1.If Ġfadesi

a.If kullanımı:

if (şart)

{

komutlar

}

if (şart)

komut

ġart doğru ise komut veya komutlar çalıĢır.

b.If..else kullanımı:

if (şart)

{

Komutlar //1.bölüm

}

else

if (şart)

komut //1.bölüm

else

komut //2.bölüm

Page 13: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

12

{

Komutlar //2.bölüm

}

ġart doğru ise birinci bölümdeki komutlar, Ģart yanlıĢ ise ikinci bölümdeki komutlar

Örnek: Buttona basıldığında, text içine girilen sayı negatif 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);

if (s < 0) MessageBox.Show("NEGATİF"); else MessageBox.Show("POZİTİF");

}

2.Ġçi Ġçe If Ġfadesi

Benzer durumları kontrol eden birkaç if deyimi iç içe yazılarak, programın daha hızlı ve verimli çalıĢması

sağlanır.

Örnek: 3 adet text kutusuna girilen 2 sınav puan ve 1 sözlü puanına göre ortalama 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 Ortalaması: " + String.Format("{0:00.0}",ort);

if (ort < 25)

label5.Text = "Not: 0";

else if (ort<45)

label5.Text = "Not: 1";

else if (ort < 55)

label5.Text = "Not: 2";

else if (ort < 70)

label5.Text = "Not: 3";

else if (ort < 85)

label5.Text = "Not: 4";

else

label5.Text = "Not: 5";

}

4.Switch Ġfadesi

Çok sayıda ihtimal varsa, hepsini “IF” komutu ile yapmak programı karmaĢık hale getirir. Bu tür durumlar için

“Switch – Case” komutu kullanmak hem program yazımını kolaylaĢtırır hem de programın okunurluğunu arttırır.

switch(kontrol ifadesi)

{

case değer1:

blok1;break;

case değer2:

Page 14: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

13

blok2;break;

...

default:

blok;

}

Örnek: 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 listbox kullanılarak yandaki form tasarlanır.

Blok seçimi yapılacak combobox1 nesnesinin Items özelliğine, A, B, C, E, G

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

Kat seçimi yapılacak combobox2 nesnesinin Items özelliğine, Zemin, 1, 2, 3

değerleri eklenir ve Text özelliğine Zemin yazılır.

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

private void button1_Click(object sender, EventArgs e)

{

listBox1.Items.Clear();//Varsa daha önceki seçime ait planı siler.

switch (comboBox1.Text) //Blok seçimine göre

{

case "A":

switch (comboBox2.Text) //Kat seçimine göre

{

case "Zemin":

listBox1.Items.Add("Kantin");

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

break;

case "1":

listBox1.Items.Add("Öğretmenler Odası");

listBox1.Items.Add("İdaresi Odaları");

listBox1.Items.Add("Memur Odaları");

break;

case "2":

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

listBox1.Items.Add("Bilgisayar Laboratuarı");

break;

case "3":

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

listBox1.Items.Add("Fen Laboratuarı");

break;

}

break;

case "B":

switch (comboBox2.SelectedText)

{

case "Zemin":

listBox1.Items.Add("Ahşap Teknolojisi Atölyeleri");

listBox1.Items.Add("Metal Teknolojisi Atölyeleri");

Page 15: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

14

listBox1.Items.Add("Tesisat ve İklimlendirme Teknolojisi Atölyeleri");

listBox1.Items.Add("Motor Teknolojisi Atölyeleri");

break;

default:

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

break;

}

break;

case "C":

switch (comboBox2.SelectedText)

{

case "Zemin":

listBox1.Items.Add("Makine Teknolojisi Atölyeleri");

break;

case "1":

listBox1.Items.Add("Elektirik Teknolojisi Atölyeleri");

break;

default:

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

break;

}

break;

case "E":

switch (comboBox2.SelectedText)

{

case "Zemin":

listBox1.Items.Add("İdareci Odaları");

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

break;

case "1":

listBox1.Items.Add("Öğretmenler Odası");

listBox1.Items.Add("İdareci Odası");

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

break;

case "2":

listBox1.Items.Add("Bilişim Teknolojileri Bilgisayar Laboratuarları");

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)

{

Page 16: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

15

case "Zemin":

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

break;

case "1":

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

break;

case "2":

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

listBox1.Items.Add("Öğretmenler Odası");

break;

default:

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

break;

}

break;

}

}

C.DÖNGÜ YAPILARI

1.While Ġfadeleri

Bir koĢula bağlı olarak (koĢul sonucu true olduğu sürece) bir takım kodlamaları tekrar tekrar çalıĢtırmak için

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

while(şartlı ifade)

{

komutlar;

}

Örnek: Form üzerinde 1-20 arasındaki sayılar (button1), 30-5

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

arasındaki sayılar (button3), 0 girilene kadar sayı giriĢi (button4),

0 girilene kadar girilen çift saylar ve toplamı (button5)

düğmelerine basıldığında istenen iĢlemi listbox içine yazan

program.

NOT: button4 ve buton5 için giriĢ kutusu(InputBox) kullanılması

gerekir. Bunun için öncelikle using Microsoft.VisualBasic

namespace‟i eklenir.

int s1=0, s2=0;

private void button1_Click(object sender, EventArgs e)

{ //1-20 arasındaki sayılar

s1 = 1;

while (s1 <= 20)

listBox1.Items.Add(s1++);

}

private void button2_Click(object sender, EventArgs e)

{ //30-5 arasındaki 5’in katı olan sayılar ve toplamı

s1 = 30;

Page 17: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

16

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ı arasındaki sayılar

s1 = Convert.ToInt32(textBox1.Text);

s2 = Convert.ToInt32(textBox2.Text);

while (s1 <= s2)

listBox1.Items.Add(s1++);

}

private void button4_Click(object sender, EventArgs e)

{ //0 girilene kadar sayı girişi

s1 = 1;

while (s1 != 0)

{

s1 = Convert.ToInt32(Interaction.InputBox("Bir Sayı Giriniz", "Giriş"));

listBox1.Items.Add(s1);

}

}

private void butto5_Click(object sender, EventArgs e)

{ //0 girilene kadar girilen çift saylar ve toplamı

s1 = 1;

while (s1 != 0)

{

s1 = Convert.ToInt32(Interaction.InputBox("Bir Sayı Giriniz", "Giriş"));

if ((s1 % 2 == 0) && (s1 != 0))

{

listBox1.Items.Add(s1);

s2 += s1;

}

}

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

listBox1.Items.Add(s2);

}

2.For Ġfadeleri

Tıpkı while gibi bir döngü yapısıdır. while döngüsünden en belirgin farkı, döngünün baĢlama, bitiĢ ve denetim

değiĢkeni güncellemesinin döngü baĢında yapılmasıdır. Bu nedenle de döngünün baĢlangıç ve bitiĢ değeri belli

Page 18: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

17

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

for (başlangıç değeri; bitiş değeri (koşul); sayaç değişkeni güncellemesi)

{

komutlar;

}

Örnek: 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 arasındaki sayılar

for(k=1;k<=20;k++)

listBox1.Items.Add(k);

}

private void button2_Click(object sender, EventArgs e)

{ //30-5 arasındaki 5’in katı olan sayılar ve toplamı

for(k=30;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ı arasındaki sayılar

s1 = Convert.ToInt32(textBox1.Text);

s2 = Convert.ToInt32(textBox2.Text);

for(k=s1;k<=s2;k+=1)

{

listBox1.Items.Add(k);

}

}

3.Do Ġfadeleri

While ve for ifadelerinin her ikisinde de koĢul (boolean ifade) döngünün hemen baĢında sorgulanmaktadır.

Dolayısıyla belirtilen koĢul, true değerini üretmezse döngüdeki kodlar iĢletilmeyecektir. Oysa do ifadesinde

durum farklıdır. do ifadesinde koĢul (boolean ifade) döngünün sonunda verilmektedir. Bu durum döngünün en

az bir defa mutlaka iĢletileceği anlamına gelmektedir.

do

{

Komutlar;

} While (koşul – boolean ifade)

4.Break Ġfadeleri

Döngülerde çok fazla tavsiye edilmemesine rağmen özel durumlarda ihtiyaç hâlinde kullanılabilecek ifadelerdir.

Page 19: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

18

Break komutu, döngüden çıkmak için kullanılan bir komuttur. ĠĢleyiĢ, döngüden sonraki komuttan devam

edecektir.

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

çalıĢması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 <= s2; k++)

{

t += k;

if (t > 1000) break;

}

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

}

D.DiYALOG KUTULARI

1.MessageBox Kullanımı

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

amacıyla kullanılır.

MessageBox.Show("Mesaj",["Başlığı"], [Kutu özellikleri]);

NOT: [] ile belirtilen bölümlerin kullanımı isteğe bağlıdır.

Kutu özellikleri:

MessageBoxButtons.AbortRetryIgnore: Ġptal Et, Tekrar Dene, Yoksay düğmelerini,

MessageBoxButtons.OK: Tamam düğmesini,

MessageBoxButtons.OKCancel: Tamam veya Ġptal düğmelerini,

MessageBoxButtons.RetryCancel: Tekrar Dene veya Ġptal düğmelerini,

MessageBoxButtons.YesNo: Evet, Hayır düğmelerini,

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

MessageBoxIcon.Error: Hata iĢareti(kırmızı üzerine x Ģeklinde)

MessageBoxIcon.Exclamation: Ünlem iĢareti (Sarı üçgen üzerine) veya MessageBoxIcon.Warning

MessageBoxIcon.Information: Bilgi(Mavi üzerine ünlem)

MessageBoxIcon.Question: Soru iĢareti ikonu ile görüntülenir.

MessageBoxDefaultButton.Button1: Hangi butonun seçili olacağı belirlenir.

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

Örnek:

private void button1_Click(object sender, EventArgs e)

{

DialogResult cev=MessageBox.Show("İşleminiz Yapılıyor", "Bilgi", MessageBoxButtons.OKCancel,

MessageBoxIcon.Information); //verilen yanıt cev değişkeni içine aktarılıyor.

if (cev == DialogResult.OK) //Tamam düğmesine basıldıysa

MessageBox.Show("Tamam düğmesine basıldı.");

}

Page 20: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

19

2.InputBox Kullanımı

Bir VisualBasic komutu olan InputBox, using Microsoft.VisualBasic komutu ile VisualBasic namespace‟inin

projeye eklenerek, bu isim uzayı içindeki sınıflardan biri olan Interaction.InputBox‟ın kullanılmasını sağlar.

Kullanıcıdan bir pencere yardımıyla değer isteme amacı ile kullanılır.

String degisken_adi= Interaction.InputBox("Mesaj", ["Başlık"], ["Varsayılan değer."], [Ekranda

açılacağı yerin x koordinatı], [Ekranda açılacağı yerin y koordinatı]);

E.HATA AYIKLAMA

1.Try-Catch Bloğu

a.Birden Çok Catch Bloğu

b.Denetlenmiş İfadeler

c.Denetlenmiş Deyimler

d.Özel Durumlar

e.Finally Bloğu

2.Adım Adım Ġzleme

Debug menüsünden Step Into(F11) veya Step Out komutları (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Ģtirilmelidir. Böylece program iĢaretlenen satıra kadar normal çalıĢır ve bekler, sonraki komutlar adım adım

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

bir iĢaretin oluĢması sağlanır.

Daha sonra adım adım izleme iĢlemi tümalt programların da içine girerek yapılacaksa Step Into(F11), alt

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

Page 21: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

20

MODÜL 3:NESNE TABANLI PROGRAMLAMADA WINDOWS

UYGULAMALARI

A.WĠNDOWS FORMLAR

1.Windows Form Uygulaması OluĢturma

C# „ da formlara dayalı program yazmak için Microsoft Windows

uygulamasını kullanabiliriz. Bu uygulamanın adı da Windows Forms

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

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

yandaki pencere çıkar.

2.Windows Form Özellikleri

Formun biçimlendirmesini, yani isim ve sitil değiĢikliklerini özellikler

penceresinden (properties) yapabiliriz. Formun özelliklerini değiĢtirmek için

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

duruma getirmiĢ oluyoruz.

NOT: formun özelliklerini kod ile de değiĢtirebiliriz. C#‟da çalıĢılan form

This komutu ile temsil edilir. Örneğin formun rengi değiĢtrilmek

istendiğinde yazılıcak komut satırı This.BackColor=Color.Red; „tir.

Name : Burası Formumuza isim verir yani default olarak ayarlı olan form1 yerine dilediğimiz ismi vermemizi

sağlar.

AcceptButton : Burası projemizi çalıĢtırdığımızda enter tuĢuna basılınca tetiklenmesini istediğimiz butonu

temsil eder.

AllowDrop : Burası forma sürükle bırak yöntemi ile bir Ģeyler eklemek istersek true yapılması gereken

özelliktir.

AutoScaleMode : Bilgisayarımızın ekran çözünürlüğünün deĢiĢtirilmesi durumunda nasıl davranacağını belirtir.

AutoScroll : Eklediğimiz controlün form penceresine sığmaması durumunda scrollbar eklenme durumunu

belirtir. true seçeilirse eklenir.

AutoScrollMargin : Auto scroll true yapılmıĢsa yandakinin yüksekliğini alttakinin geniĢliğini integer değer

alarak belirtir. değer girilmezse controllerin bittiği yere kadar kayma sağlar.

AutoScrollMinumuSize : Bi öncekine benzer bir özelliktir ve kontrollerimiz formumuza sığsa bile belirtilen

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

AutoSize : Forma eklenen kontroller forma sığmıyorsa otomatik olarak form penceresinin ebatlarının artmasını

sağlayan özelliktir.

AutoSizeMode : Ġki seçenek sunar. Default olarak ayarlı olan GrowOnly projemiz çalıĢırken form boyutunu

değiĢtirmemize izin verir. GrowAndShrink seçilirse çalıĢma anında form penceresinin boyutlarının değiĢimine izin

vermez.

BackColor : Formumuzun arka plan rengini değiĢtirmemizi sağlar.

BackgrounImage : Formumuzun arka planına resim eklememizi sağlayan özelliğidir.

BackgrounImageLayout : Default ayarı Tile olarak gelen bu özellik; eklediğimiz arkaplan resminin forma sol

üstten baĢlayarak sığacak kadar olan kısmını göstermesini, Center; resim formdan küçük ise formu ortalayacak

Page 22: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

21

Ģekilde görünmesini, Stretch; resmin forma tam sığacak Ģekilde boyutlanarak görünmesini, Zoom ise resmin

orjinal boyutunu koruyarak sığacak Ģekilde görünmesini sağlar.

CancelButton : ÇalıĢma esnasında esc tuĢuna basıldığında tetiklenmesini istediğimiz butonu seçmemizi sağlar.

CausesValidation : Default olarak true olan bu özellik Validatorlerin devreye girmesini sağlıyo.

ContextMenuStrip : Formumuza ait bir contextMenüStrip varsa ve bu seçenekte onu belirtirsek çalıĢma

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

ControlBox : Formun sağ üst köĢesinde bulunan kapat-küçült-simgedurumu butonlarını kaldırmayı sağlar.

Cursor : Mouse'nin form üzerinde nasıl görünmesini istersek buradan seçebiliriz.

DoubleBuffered : Bu özellik formumuz üstüne çizilmiĢ bir resim varsa onun titremesini giderir.

Enabled : Formumuz üzerine eklenmiĢ kontrollerin(button, textbox vs.) aktif yani kullanılabilir olmasını yada

olmamasını sağlar.

Font : Bu özellik ile form üzerine eklenen kontrollerin yazı fontunu ayarlamayı sağlar.

ForeColor : Form üzerine eklenen kontollerin yazı rengini ayarlamamızı sağlar.

FormBorderStyle : Formumuzun çerçeve stilini değiĢtirmemizi sağlar. Burda söylemek istediğim ekstra ufak

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

görünmez ;)

HelpButton : BaĢlık çubuğuna help buttonu eklemeyi sağlar.

Icon : Formumuzun sol üst köĢesindeki iconu değiĢtirmemizi sağlar.

ImeMode : Bu özellik formumuzda çince, japonca, korece gibi dillerin karakterlerinin desteğini sağlar. Ayarların

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

http://msdn.microsoft.com/trtr/library/system.windows.forms.imemode.aspx adresini inceleyebilirsiniz.

IsMdiContainer : Burası ise mdi özelliğini belirler yani ana form içinde yeni formlar açılmasını sağlar ana

formumuza eklediğimiz yeni formların MdiParent' i this yani ana formumuz olarak ayarlanmalıdır. Ġleriki

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

programında bir kaç tane farklı çalıĢma 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üĢünebiliriz.

KeyPreview : bu özellik false iken form üzerindeki kontrollerimizden hangisi focus ise onun keypres eventi

yada istenilen herhangi bir key eventi çalıĢır. ama bu özelliği true yaparsak focuslanan kontrolden önce

formumuzun istediğimiz key eventini tetikleyebiliriz.

Language : Formumuzun dilini seçer. Formumuzun kontrollerini farklı dillere göre uyarlayabiliriz. Default

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

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

çalıĢtığı yere sabitlenir. Boyunu ve yerini değiĢtirmeye izin vermez.

MainMenuStrip : Menü strip ekliyse bunlardan hangisinin formumuzun ana menüsü olacağını seçmemizi

sağlar.

MaximizeBox : Sağ üstte bulunan simge-küçült/büyült-kapat butonlarından küçült/büyült olanını deaktif

yapmayı sağlar.

MaximumSize : Formumuzun maximum alabileceği boyutları ayarlamamızı sağlar.

MinimizeBox: Yine sağ üstte bulunan simge durumuna küçültme ve boyutunu küçültme yapan butonları

kaldırmayı sağlar.

MinimumSize : Formumuzun minumum alabileceği boyutları ayarlamamızı sağlar.

Opacity : Formumuzun saydamlığını ayarlamamızı sağlar. %100 ise tam görünür ve düĢürdükçe saydam hale

gelir.

Padding : Forma eklenen controllerin formun kenarlarına olan uzaklık referansını verir. Örneğin Left değerini

50 verdiğimizde; forma control sürüklerken control soldan 50px değerinde olduğunda bunu belirten bir referans

Page 23: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

22

çizgisi çıkar.

RightToLeft : Formun Textini sağa yada sola almayı sağlar.

RightToLeftLayout : RightToLeft ile beraber kullanılır ve formun sağ üstte bulunan kapat küçült simge

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

ShowIcon : Formun textinin yazdığı yerdeki iconu gizlemeyi/göstermeyi sağlar.

ShowInTaskbar : Form çalıĢtığında görev çubuğunda gözüküp gözükmeyeceğini ayarlamayı sağllar.

Size : Formun boyutlarını elle girmeyi sağlar.

SizeGripStyle : Formun sağ alt köĢesinde boyutlandırılabileceğini gösteren üçgeni göstermeyi sağlar.

StartPosition : Formun çalıĢtığında ekranın neresinde olacağını belirlemeyi sağlar.

Manual: Locationda belirlenen yerde formu açar.

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

WindowsDefaultLocation: Size‟da belirlenen boyutta ĠĢletim sisteminin varsayılan konumunda formu

açar.

WindowsDefaultBounds: ĠĢletim sisteminin varsayılan boyut ve konumunda formu açar.

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

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

edilebilir.

Text : Burası formun üstteki yazısını değiĢtirmemizi sağlar.

TopMost : Burası true yapıldığında formumuz açık olan tüm pencerelerin veya programların önünde olmayı

sağlar.

TransparencyKey : Burada seçeceğimiz renk ile formumuzda o seçtiğimiz renkte olan alanları transparan

yapar.

UseWaitCursor : Cursorun form üzerine geldiğinde bekleme iconunu kazanmasını sağlar.

WindowState : Formumuzun açılıĢta ayarlandığı boyutta veya simge durumunda veya tam ekran olarak

açılmasının seçimini sağlar.

Normal: Program çalıĢınca formu belirlenen boyut ve yerde gösterir.

Minimized: Program çalıĢınca formu simge durumuna küçültülmüĢ olarak baĢlatır.

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

3.Nesneler

3.1. Buton

Text Özelliği: Button‟un üzerindeki metinle ilgili iĢlemler yapılır.

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

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: Button‟un arkaplan rengi ilgili iĢlemler yapılır.

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

Enabled Özelliği: Button‟un aktif veya pasif yapar. true ise aktif , false ise pasiftir.

private void button1_Click(object sender, EventArgs e)

Page 24: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

23

{ button1.Enabled = False; }

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

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

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

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

iken properties‟ten AccepButton özelliğinden Enter‟e basınca hangi butonun çalıĢmasını istiyorsak açılır

menüden o butonu seçiyoruz veya kodlarla aĢağıdaki gibi yapabiliriz.

CancelButton Özelliği: Aktif formdaEsc tuĢuna basıldığı zaman hangi butonun çalıĢacağını belirtir.Form seçili

iken properties‟ten AccepButton özelliğinden Esc‟ye basınca hangi butonun çalıĢmasını istiyorsak açılır menüden

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

Örnek: Kodlarla atama iĢlemi 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.

Önemli Not: Yukarıda kodlar ile yaptığımız iĢlemlerin çoğunu nesneyi seçerek properties penceresindende

yapabilirsiniz.

3.2. Label

Kullanıcıya form üzerinde bilgi vermek 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 yerleĢimi TextAlignözelliği ile belirlenebilir.

• Image özelliği ile Label içerisinde resim gösterilebilir.

• ImageAlign özelliği ile resmin yerleĢmini belirleyebilirsiniz.

• ImageList ve ImageIndex özellikleri ilede resim gösterilebilir.

• Bu kontrolün önemli özelliklerinden biri AutoSizeözelliğidir. Bu özellik normalde false dir.

BackColor : Tahmin edebileceğiniz gibi Label‟ın arka plan rengini ayarlar.

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

Font : Font‟unu ayarlamamıza yarar. Boyut, yazı tipi gibi özellikleri 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: Ģimdi 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)

Page 25: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

24

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

//Kısa olarak yukarıdaki kodda yazılabilir. }

3.3. TextBox

TextBox kullanıcıdan bilgi giriĢi gereken programlarımızda bu kontrolü sağlamak için kullandığımız nesnemizdir.

MultiLine özelliği ile birden fazla satır giriĢ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 sahiptir.

Text Özelliği: textBox‟ta bulunan metinle 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‟ı temizlemek için kullanılır.

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

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

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

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

giriĢlerinde karakterler gözükmez. Karakterler yerine yıldız iĢaretini görürüz. ĠĢte bu iĢlemi bu özellik sayesinde

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

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

Page 26: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

25

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

tıklayın ve MultiLine‟ı seçin.

MaxLength Özelliği: textBox‟a maksimum kaç karakter girileceğini belirler.

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 olması sağlanır.

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

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

3.4. CheckBox

Checkbox birçok seçenek arasından bir veya daha fazla seçim yapmamı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ırmak istediğimiz

yerlerde checkbox nesnesini kullanırız.

Text Özelliği: checkBox‟ın yanındaki metinle ilgili iĢlemler yapılır.

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

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

gerekmediğidir.

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

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

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

ise tutara %5 Öğrenci indirimi uygulanacak.)

private void button1_Click(object sender, EventArgs e)

{ Double fiyat, kdv, tutar; fiyat = double.Parse(textBox1.Text); kdv = (double.Parse(textBox2.Text)/100); //text boxdaki değerleri double yaptık tutar = fiyat +(fiyat * kdv); if (checkBox1.Checked==true) { tutar-=tutar*0.05; } label4.Text = tutar.ToString();

}

Page 27: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

26

Örnek: Basit bir hesap makinesi 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(), "Çarp"); }

CheckState : CheckBox ın baĢlangıçtaki durumunu belirten özelliktir. Unchecked/Checked/ Indeterminate

değerlerini alır.

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

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

Enabled Özelliği: checkBox‟ın aktif veya pasif yapar. True ise aktif , false ise pasiftir.

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ünmez.

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

3.5. CheckedListBox

Çoklu seçme Ģansını bize sunan CHECKEDLISTBOX bileĢeni birçok durumda gerçekten iĢimizi

kolaylaĢtırmaktadır. Normal listbox ile kullanımı hemen hemen benzerdir.

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

Items.Count: Listedeki tüm elemanların toplam sayısını verir. Textbox1.Text=Checkedlistbox1. Items.Count

Checkeditems.count: Seçili olan elemanların sayısını verir.

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

Items.Contains: Tüm liste içeriğini parantez içinde verilen değerle kontrol eder. Değer varsa true, yoksa false

dır.

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

Page 28: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

27

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)) //Birinci seçilmiş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. ComboBox

Combobox açılır liste kutusunda bulunan elemanlardan bir tanesinin

seçilmesi durumunda kullanılan nesnedir. Combobox içindeki elemanlar

Items özelliğinden ayarlanır.

Items.Add Özelliği: ComboBox‟a eleman eklemek için kullanılır.

Örnek: textBox‟a yazılan elemanı comboBox‟a ekleyelim.

Page 29: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

28

private void button1_Click(object sender, EventArgs e) { if (comboBox1.Items.IndexOf(textBox1.Text)!=-1) { MessageBox.Show("Girdiğiniz şehir zaten var","Uyarı",MessageBoxButtons.OK); } else { comboBox1.Items.Add(textBox1.Text); }

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

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

istiyorsak onu comboBox1=”Seçili olması 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"; }

Selectedindex Özelliği:

Items Ö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();

Items.Clear Özelliği: ComboBox‟ı temizlemek için kullanılır.

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

Items.Count Özelliği: ComboBox‟taki eleman sayısını verir.

Items.IndexOf Özelliği:ComboBox‟ta eleman aramak için kullanılır.Eğer belirtilen eleman var ise sıra

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

Items.Contains Özelliği: ComboBox‟ta eleman aramak için kullanılır.Eğer belirtilen eleman var ise true , yok

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

Sorted özelliği: True/False değerlerinden birini alır. Combobox içindeki elemanları alfabetik olarak sıralamak için

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

comboBox1.Sorted=true;

3.7. ListBox

Listbox verilerin satırlar halinde listelendiği Visual Studio

nesnesidir. ListBox' a eleman ekleme ve silme

iĢlemleri Items özelliğinden yapılır.

Items.Add Özelliği: listBox‟a eleman eklemek için kullanılır.

private void button1_Click(object sender, EventArgs e)

Page 30: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

29

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

Items.Clear Özelliği:listBox‟ı temizlemek için kullanılır.

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

Items.Count Özelliği: listBox‟taki eleman sayısını verir.

Items.IndexOf Özelliği: listbox‟ta eleman aramak için kullanılır.Eğer belirtilen eleman var ise sıra numarasını ,

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

Örnek: Yukarıdaki örneği listBox‟ın içersinde eklemek istediğimiz eleman olup olmadığını kontrol 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("Eklemek İstediğiniz Eleman mevcut","Uyarı",MessageBoxButtons.OK,MessageBoxIcon.Error); } }

Items.Contains Özelliği: listBox‟ta eleman aramak için kullanılır. Eğer belirtilen eleman var ise true, yok

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

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

Örnek: AĢağıdaki uygulamayı gerçekleĢtiriniz.

3.8. RadioButton:

Radio buton çok seçenek arasından bir tane seçim yapmamızı sağlayan araçtır. Mesela cinsiyet sorduğumuzda

ya erkektir ya da kadın bunun gibi tek seçim yaptırmak istediğimiz yerlerde radio buton nesnesini kullanırız.

Text Özelliği:Radio Butonun etiket yazısını değiĢtirmemizi sağlar. radioButton1, radioButton2,…

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

Page 31: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

30

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

backcolor Özelliği: radiobutton‟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: radiobutton‟un aktif veya pasif yapar. true ise aktif, false ise pasiftir.

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

Checked Özelliği: radiobutton‟un en önemli özelliğidir. radiobutton‟un seçili olup olmadığı ile ilgili iĢlemler yapılır.

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

Örnek: Hangi radiobutton 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, minibüsler 1 saat için 5 TL ve otobüs/kamyon ise 6 TL

ödemektedirler. Araç türünü seçip kaldığı süre girildiğ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 Tutar: "+p.ToString()+" TL","Ödeme Bilgisi",MessageBoxButtons.OK,MessageBoxIcon.Information); }

3.9. GroupBox

Nesneleri gruplamak için kullanılır. groupbox kullanma sebeplerini yazalım.

Page 32: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

31

1-Formda birden fazla radiobutton gurubumuz olabilir. Aynı anda her gruptan da bir tane radiobutton seçmemiz

gerekebilir. Bu durumda groupBox kullanmamız gerekir. AĢağıda örnek bir form verilmiĢtir. 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 yapabiliriz.

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 kullanmamız gerekiyor.

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

gruplarsak tek bir kodla bu iĢlemi yapabiliriz.(groupBox1.Visible=true;)

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

Text Özelliği: GroupBox‟ın yanındaki metinle ilgili iĢlemler yapılır.

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

Enabled Özelliği: groupBox‟ın aktif veya pasif yapar. True ise aktif, false ise pasiftir.

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‟ı (radiobutton1) tıkladığında çocuk sayısı

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

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

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

groupbox2′yi formda 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; }

Page 33: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

32

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.10. Panel

Nesneleri guruplamak için kullanılır. groupbox‟tan farkı kaydırma çubukları eklenmesidir.

1-Formda birden fazla radiobutton gurubumuz olabilir.Aynı anda her gruptanda bir tane radiobutton seçmemiz

gerekebilir. Bu durumda panel ve groupbox kullanmak 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 kullanmamız gerekiyor.

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

gruplarsak tek bir kodla bu iĢlemi yapabiliriz.(panel1.Visible=true;)

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 aktif veya pasif yapar. True ise aktif , false ise pasiftir.

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

Page 34: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

33

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

3.11. PictureBox

Programa görsellik katmak için bazı yerlere resimler ekleyebiliriz. Bunun için picturebox kullanımı basit bir

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

PicureBox‟ımıza resim eklemeye gelince [Design] kısmından da picurebox‟a tıklayıp sağ üstten ok iĢaretine

tıklayıp choose image ile resim seçebiliriz.

pictureBox1.Image = Image.FromFile("C:\\denemeResim.jpg");

Yukarıdaki kodu kullanabiliriz. Eğer internet üzerindeki 1resimi yüklemek istersek aĢağıdaki kodu kullanabiliriz

pictureBox1.ImageLocation = "http://www.gorselprogramlama.com/logo.gif";

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

pictureBox1.ImageLocation = "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çiniz") pictureBox1.ImageLocation = ""; else MessageBox.Show("Listede muvcut değil !");

}

3.12.İmageList

imagelist kontrolü ,formumuzda resimleri kullanacaksak iĢimize yarayacaktır.Bilindiği gibi resimle alakalı bir

diğer kontrol olarak picturebox bulunmaktadır, imagelistte depoladığımız resimleri indis numaralarıyla

pictureboxta görüntüleyebiliriz. Örnek olarak formumuzda birden fazla picturebox var ve biz bu resimleri

runtime'da değiĢtirmek istiyoruz. Gerekli kodlardan sonra formumuzdaki resimleri dinamik olarak değiĢtirebilme

imkanı doğabilmektedir

3.13. Timer

Ġstediğimiz komutların belirlediğimiz zaman aralığında tekrarlamasını istiyorsak timer kullanabiliriz.

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

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

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

gerekir.

Enabled Özelliği: Değeri true ise timer‟ın çalıĢmasını, false ise

durdurulmasını sağlar. Yani enabled değeri true ise timer‟ın Tick olayına

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

Tick Olayı : Bu olaya yazılan kodlar interval ile belirlenen zamanda tekrar

edilir.

Page 35: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

34

Örnek: BaĢla ya basınca her 1 saniyede listbox‟a c#öğreniyorum yazsın. Dur tıklanınca ekleme 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# Öğreniyorum"); }

Ö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.14.SubString Metodu

Metinlerdeki bir harf ya da harfler grubunu seçmek için kullanılır. Integer veri tipinde bir ya da iki tane

parametre 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.

Page 36: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

35

karakteri ifade etmektedir.

ġimdi Substring metodunun baĢka türlü 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 Substring kısmında 4 yazılmıĢ. Bu 5. karakterden baĢlayarak son karaktere kadar

string ifadeyi alıp değiĢkene at demektir. 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. karakterden itibaren geri kalanı yazar. //label1.Text = s.Substring(4,10); //Yukarıda 4. karakterden itibaren 10 karakter yazar. label1.Text = textBox1.Text.Substring(4,10); //textBox' yazılan ifadenin 4. karakterinden itibaren 10 karakter yazar.

//kaç karakter yazılacağını textbox ile alalım.

3.15.MenuStrip

C# projelerimize menü oluĢturmak için Toolbox içindeki MenuStrip nesnesini kullanacağız. Menü oluĢturma ve

MenuStrip nesnesinin özellikleri aĢağıdaki gibidir.

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

forma MenuStrip ekleyin.

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

menüleri ve alt menüleri oluĢturun.

Menü oluĢturma iĢlemi bittikten sonra menü item‟lerine çift

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

Formlar Arası Veri Gönderme:

C# ta formlar arasında veri ve değiĢken göndermek mümkündür. Örneğin Form2 den, Form1 de kullandığınız

bir değiĢkene eriĢebilir veya Form1 üzerindeki bir nesnede bulunan veriyi değiĢkene aktararak diğer formlarda

kullanabilirsiniz. Bunun için değiĢkeni public static olarak ayarlamak gerekir. Bu tür değiĢkenler partial

class içinde tanımlanmalıdır.

AĢağıdaki örnekte menustripte yeni komutu verildiğinde yeni form açılır.

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

Page 37: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

36

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 form2‟de kullanalım.

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

Formlar arası veri alıĢ veriĢinde ikinci yöntem ise aĢağıdaki

gibidir.

3.16.ContexMenuStrip

Formumuza sağ tık menüsü eklemek için kullanulan araçtır. Bu aracı seçmek için Toolbox‟tan ContextMenuStrip

seçilir. Daha sonra menu de olmasını istediğimiz komutları girmeliyiz.

ContextMenuStrip‟in formda kullanılması için form özelliklerinden ContextMenuStrip özelliğinden

ContextMenuStrip1 seçilmelidir.

3.17.StatusStrip

statusStrip programlarınızda kullanıcıları bilgilendirmek için uygulayabileceğiniz bir durum çubuğu kontrolüdür.

Statusstrip üzerinde mesaj, yükleme durumu, resim, menü gibi bildirimler sunabilirsiniz.

C#‟da statusStrip kullanımı için form üzerinde bir buton, timer, statusstrip nesnesi yerleĢtiriyoruz.

Daha sonda tasarım alanında statusStrip nesnesine tıklayıp bir

label ve bir yükleme (progressbar) çubuğu eliyoruz daha sonra

buton içerisine

private void button1_Click(object sender, EventArgs e) { for (int i = 0; i <= 100; i++) { toolStripProgressBar1.PerformStep(); Application.DoEvents(); } }

Timer nesnesine

private void timer1_Tick(object sender, EventArgs e) { DateTime t = DateTime.Now; string s = t.ToLongTimeString(); toolStripStatusLabel1.Text = "Saat: " + s; }

Page 38: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

37

Yukarıdaki örnekte Application.DoEvents() kodunun görevi bir windows form çalıĢtırılığında, döngü içerisinde

gerçekleĢtirilmek istenen olaylar bir kuyruğa alınır ve bu kuyrukta bekletilir. Olayların kuyrukta bekletiliyor

olması, uygulamanın cevap vermemesine ve hatalar ile karĢılaĢmanıza sebep olur. Bu hatalardan, kuyrukta

bekleyen olayların iĢlenmesini sağlayan Application.DoEvents(); komutunu döngünüzün içerisinde kullanarak

kurtulabilirsiniz.

3.18 Formdaki Tüm TextBox’ları Temizleme

TextBox‟ların içini temizlemek için kullanılacak çeĢitli komutlar var. Örnek

olarak aĢağıdaki komutları gösterebiliriz.

textBox1.Clear();//ya da

textBox1.Text=””;

Ancak bu komutlar textBox saysısının fazla olduğu durumlarda kullanıĢlı

olmayabilir.

Fazla sayıda textBox olan formlarda textBoxların temizlenmesi için farklı bir

komut satırı kullanmak daha kolay olabilir.

private void button1_Click(object sender, EventArgs e) { for (int i = 0; i < this.Controls.Count; i++) { if(Controls[i] is TextBox)Controls[i].Text = ""; } }

Yukarıdaki komut satırında bir for döngüsü oluĢturulmuĢ. Bu döngünün bitiĢ parametresi this.Controls.Count

komutuyla hesaplanır. Bu komut formdaki kontrollerin (textBox, Label, Buton…) sayısını bulur. Ancak

temzilenmesini istediğimiz sadece texBoxlar olduğu için if yapısıyla sadece textBoxlar temizlenir.

Tabindex:

Bu komut sayesinde tab tuĢuna basıdığında hangi form elemanın seçileceği belirlenir. Burada bilinmesi gereken

her form elemanın bir Tabindex numarası olduğudur. Form çalıĢtığıda Tabindex numarası en düĢük olan form

elemanı seçili olarak çalıĢlır. Tab tuĢuna bastığımızda ise Tabindex numarasına göre form elemanları küçükten

büyüğe doğru seçilmeye devam eder.

TextBox’a Veri GiriĢini Zorunlu Kılma:

Özellikle bazı durumlarda TextBoxlara veri giriĢi zorunlu olması istenebilir. Bunun için kullanılacak komut satırı

aĢağıdaki gibidir.

Burada Trim() komutunun görevi TextBox‟a girilen boĢluk karakterlerini silmektir. Böylece textBox‟ın baĢındaki

veya sonundaki boĢluklar silinmiĢ olur.

if (textBox1.Text.Trim() != "" && textBox2.Text.Trim() != "" && textBox3.Text.Trim()!="")

if yapısı ile veri girilmesi zorunlu alanlara veri girilmemiĢ ise tespit edilip uyarı mesajı verilebilir.

TextBox’a Metinsel ya da Sayısal Veri GiriĢini Zorunlu Kılma:

Veri tabanı iĢlemlerinde TextBox‟lara girilicek verilerin metinsel ya da sayısal

olması önemlidir. Bunun kontrolünü yapmak için ilgili TextBox seçilir ve

özellikler pencersinden Events(olaylar) sekmesinden KeyPress olayı çift

tıklanarak kodlar yazılır.

private void textBox2_KeyPress(object sender, KeyPressEventArgs e) { if (char.IsDigit(e.KeyChar)==false && e.KeyChar!=(char)08) { e.Handled = true; }

Page 39: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

38

}

Yukarıdaki kod bloğunda e.handled komutu seçili TextBox‟a veri giriĢini engeller. Char.IsDigit (e.KeyChar)

Komutu ise sayısal değer girildiğinde True döndürür. Dolayısıyla yukarıdaki komut satırında sayısal değer

girilmediyse ve ascii kodu 08 olan backspace tuĢuna basılmadıysa TextBox‟a veri giriĢi durdurulur. Böylece seçili

TextBox‟a sadece saysıyal değer girilebilir.

Eğer TextBox‟a sadece metinsel ifadeler girilmesi isteniyorsa yukarıdaki komut satırı aĢağıdaki gibi

düzenlenmelidir. Buradaki char.IsLetter(e.KeyChar) komutu sadece metinsel ifade girildiğinde True döndürür.

private void textBox2_KeyPress(object sender, KeyPressEventArgs e) { if (char.IsLetter(e.KeyChar)==false && e.KeyChar!=(char)08) { e.Handled = true; } }

4. Veri Tabanı ĠĢlemleri

4.1. Veri Tabanına Bağlanma

C# ile Access veri tabanına bağlantı kurmadan önce Ms Access‟te bir veri tabanı oluĢturup projemizin exe

dosyasının bulunduğu klasöre kaydetmeliyiz. Ms Access‟in sürümü 2007 veya üstü olabilir. Ancak Ms Access

sürümü 2003 ise veri tabanı bağlantı kodumuzda değiĢikler yapmamız gerekecektir. Veri tabanı komutlarını

kullanmak için isim uzayına using System.Data.OleDb; isim uzayını eklemeliyiz.

Veri tabanı bağlantısı oluĢturmak için gerekli olan komut satırını global tanımlamalısınız. Bunun için aĢağıdaki

komut satırını public satırından sonra yazılmalıdır.

OleDbConnection bag= new OleDbConnection(“Provider=Microsoft.Ace.OleDb.12.0;Data Source =data.accdb”);

Veri tabanı bağlantısını açmak için

bag.Open(); Komutu kullanılır. Yine veritabanı bağlantısını kapatmak için,

bag.Close(); komutu kullanılır.

private void button2_Click(object sender, EventArgs e) { try { bag.Open(); MessageBox.Show("Veri tabanı bağlantısı sağlandı"); bag.Close(); MessageBox.Show("Veri tabanı bağlantısı kesildi"); for (int i = 0; i < this.Controls.Count; i++) { if (Controls[i] is TextBox) Controls[i].Text = ""; } } catch (Exception hata) { MessageBox.Show(hata.Message); } }

Yukarıdaki örnekte kaydet butonuna basıldığında veri tabanına bağlandı mesajı alınacaktır. Daha sonrada

bağlantı kesildi mesajı alanıcaktır.

Buradaki try komutu hata yakalamk için kullanılır.

4.2. Veri Tabanından Veri Çekme

Page 40: GRAFİK ANİMASYON DERSİ - volkanaltintas.com · Fakat C# programlama dili kullanım sırasında tanımlamaya izin verir. DeğiĢkenlerin isimlendirilmesi de önemli bir konudur.

39

Veri tabanındaki verileri C# „a aktarırken önce data adaptör (OleDbDataAdapter) kullanılır. Daha sonra data

adaptördeki veriler data tablo (DataTable) veya sanal veritabanı (DataSet) kullanılır. AĢağıda data tablo

kullanılmıĢtır.

Önce forma DataGridView eklenir.

OleDbConnection bag = new OleDbConnection("Provider=Microsoft.Ace.OleDb.12.0;Data Source =data.accdb"); DataTable tablo= new DataTable();//tablo isminde tablo tanımladık. private void Form2_Load(object sender, EventArgs e) { label1.Text = "Merhaba "+Form1.adi; OleDbDataAdapter adtr = new OleDbDataAdapter ("Select * From ogrbil",bag);//sql deyimini yazıyoruz adtr.Fill(tablo);//data adaptörün içini tabloya aktardık. dataGridView1.DataSource = tablo;//tablodaki verileri datagridviewe aktardık. }

4.3. Veri Tabanına Kayıt İşlemi

Veri tabanına kayıt iĢlemi için OleDbCommand() komutu kullanılmaktadır.

private void button2_Click(object sender, EventArgs e) { bag.Open(); kmt.Connection = bag; kmt.CommandText = "INSERT INTO ogrbil(ogrno,adsoyad,sinifi,adres) VALUES ('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "')"; kmt.ExecuteNonQuery(); bag.Close(); }

Tabi public kısmında OleDbCommand tanımlanmalıdır;

OleDbCommand kmt = new OleDbCommand();