Diyelim ki c#da bir sinema otomasyonu yapmanız gerekiyor.Formu dizayn ederken yapmanız gereken koltukları temsilen herhangi bir kontrol eklemektir.Bir sinema salonu 50 kişilik ve 4 tane de salon varsa toplamda formlarınız için 200 tane kontrol eklemeniz gerekmektedir.Oldukça uğraştırıcı ve zaman kaybettiren bir dizayn işlemi olacaktır sizin için.Programlama bilgisi çok iyi olmayan birinin yapacağı kontrolleri tek tek eklemek olacaktır,oysa ki object oriented programming(nesne yönelimli programlama) dan ve nimetlerinden haberdar olan programlamacı ise kontrolleri tek tek eklemez onları kodu çalıştırırken yapabileceğini bilir.Benim bahsedeceğim de 2. seçenek,yani kontrolleri elle, tek tek değil de kod içerisinde oluşturup çalıştırmaktır, yani Run-Time(çalışma anında) nesne oluşturmak olacaktır.
Run-Time kontrol oluşturabilmek için o kontrolden bir nesne yaratmanız gerekecektir.
Button btn = new Button(); diye tek bir nesne oluşturup döngüler yardımıyla istediğiniz kadar buton görüntüleyebilirsiniz.
Bu konuyla ilgili BilgeAdamda staj yaparken derste yazdığımız şu kodu beraber inceleyelim:
int x = 40; //başlangıç x koordinatı
int y = 40;//başlangıç y koordinatı
int b = 1; //yerleştirilen buton numarasının tutar
private void Form3_Load(object sender, EventArgs e) //işlemleri form yüklenirken yapsın
{
for (int i = 0; i < 10; i++) //matrix mantığı ile 100 tane buton oluşturacaz
{
for (int j = 0; j < 10; j++)
{
Button btn = new Button();
//butondan bir nesne oluşturmamız gerekecek
btn.Name = “btnNo” + b;
//her birinin adı oluşum sıralarının adını alacaktır
btn.Text = b.ToString();
btn.Size = new Size(40, 40); //size her defasında 40-40 olacaktır
btn.Left = x;
x += 40; //x koordinatı tek bir satır için her defasında 40 yana kaymalı
btn.Top = y; //y koordinatı aynı satır aynı kalır alt satıra geçildiğinde 40 artar
b++; //butonun numarası her defasında bir artacaktır
btn.Click += new EventHandler(btn_Click); //hatta isterrsek o butona event bile yazarız
//butona basılma eventini tutar
//event olduğunu += gösterir
//bu formun kontrollerine oluşturduğun btn nesnesini eklemen gerek
this.Controls.Add(btn); //btn kontrolünün nereye ait olduğunu belirtmeiz gerekir,formun kontrolü
}
x = 40; //ilk 10 taneyi oluşturduktan sonra alt satıra geç ama lefti değişmeyecek
y += 40; //top üstten bir satır uzaklaştığı için +40 olmalı
} }
void btn_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
//sender içinde thisin verilerini tutar
MessageBox.Show(“Merhaba ” + btn.Text + ” im..”);
}
işte çıkan sonuç:

Butona tıkladığımızda da şöyle bir görüntü oluşur:

DERYA GÜNDÜZ
deryagunduz.blogspot.com
Son Yorumlar