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
16 yorum:
Merhaba Deryacim,
Konuyla alakasiz ama sana sormak istedigim ve ogrenmeyi cok istedigim bir sey var. Nasil calisiyorsun? Oturup devamli program mi yaziyorsun, dergi-kitap mi okuyorsun, hocalarina mi danisiyorsun nedir bunun sirri bize de soyler misin acaba? =)
merhaba ben de sizin kim olduğunuzu çok merak ettim isminizi bağışlarsanız çok mutlu olacam:)
Gelelim sorunuza,öncelikle ben bölümle ilgili kendimi herzaman çok eksik hissettim,çünkü okadar geniş ki...iyi olduğunu hissetmek imkansız gibi birşey.Bu yüzden mümkün olduğunca yoğunlaşmaya çalışıyorum.Devamlı program yazıyorum desem pek doğru olmayabilir,çünkü henüz sürekli program yazacak kadar iyi değilim.Ama etrafımda benden daha iyi olduklarını düşündüğüm insanlara bilmediğim şeyleri danışırım ,sonra internetten konuyla ilgili sürekli araştırma yapmaya çalışıyorum ve önüme gelen örnek kodu en küçük ayrıntısına kadar inceliyorum,kafama takılan en ufak bişey olsun hemen mutlaka birilerine sorarım.Hatta bazen çevremdekileri bıktırırm sorularımla:),çünkü konun özünü anlamak çok önemli.
c gelişmiş diller arasında yer alıyor kendini geliştirdiğin takdirde bölümünde ilerleyeceğine inanıyorum .Ancak şunu merak ediyorum şuan mühendislik kaçıncı sınıftasın ve c'yi ne kadar zamandır kullanıyorsun. Blogunda okuduğum kadarı ile bilge adamın yanında staj yapmışsın da bence hata yapmışsın. ileri derece visual basic ( Geleceğe yönelik bir dil olmasada ) ve uzmanlık derecesinde php ve delphi biliyorum webprogramlama dillerinin hemen hemen hepsini biliyorum . Açıkçası bu işin okulunuda okumadım. Umarım iyi yerlere gelirsin.
önce merak ettiğin soruyu cevaplandırmayım,bilgisayar mühendisliği 3. sınıfa geçiyorum,cyi 1. sınkıfta öğrenmeye başladım,fakat şimdi pek kullanmıyorum zaten.BilgeAdamdaki stajımdan da gayet memnun kaldım ayrıca.Ama yazında tam olarak neyi kasettiğini anlayamadım açıkçası,eleştirdin mi neyi eleştirdin anlaymadım,biraz daha açarsan söylemek istediklerini daha iyi anlaşabiliriz.
Öncelikle ilk sorumda c'yi ne kadar zamandır çalıştığını örenmek istedim. herhangi bir eleştiri yokta Bilge adamın yanındaki stajının ne kadar yararlı olduğunu düşündüm sadece.
Bu adamlar
Yazılım ve Veritabanı Uzmanlığı, Sistem ve Ağ Uzmanlığı, Web ve Grafik Tasarımcılığı, Teknik Çizim ve 3D Uzmanlığı .... v.s v.s bi sürü şeyden bahsediyor Ancak elle tutulur bir projeye imza attıklarına şahit olmadım.
Microsoft yanlısı adamlar olduklarını biliyoruz . O yüzden windows u çok seviyorlar ve sadece microsoft tabanlı bakıyorlar vb.net öretiyorlar . Veritabanı uzmanlığı deyip sadece mssql üzerinde bilgi sahibi yapıyorlar.
Ancak geleceğe yönelik bakıldığı zaman , heleki bir Bilgisayar mühendisi gözünden bakıldığı zaman işletim sistemlerinde Linux , Unix Mac os , v.s daha özgür sistemler olduğunu görüyoruz ve bunların Genel itibari ile php ve mysql kullandığını biliyoruz. Böyle bir ekibin seni bu sistemler üzerinde ne kadar bilgi sahibi ettiğini merak ediyorum . Ne tip bir eğitim verildi desem daha kısa olur sanırım :) .
çok teşekkür ederim :)
kontrolleri runtime da eklemeyi az çok öğrenmiştim, ama event larla ilgili bilmiyordum :(
kolay gelsin....
BilgeAdamın Microsoft yanlısı olduğu ve özgür yazılımla ilgili eğitimlerinin olmadığı doğru fakat bu benim staj yaptığım süreçte beni pek ilgilendirmedi.Stajımı yazılım departmanında yaptım,sql,ado.net ve .net girişi derslerine katılabilme imkanı bulabildim.Benim açımdan bayağı bir verimli geçti yani.
Faydalı olduysa ne mutlu Mehmet arkadaşım....
Bir ödev üstünde çalışıyorum.
İlaç gibi geldi.
Derya Hanım bende böyle birden çok buton oluşturmayı arıyordum uğraşak vaktim yoktu çok acil lazımdı çok işime yaradı. Emegine sağlık.
İşine yaradıysa sevindim Ergün.
Bu Kodlar Bende Neden Çalışmıyor Class Açılması Gerekiyor mu???
Namespace Diyecektim Sabah Sabah Yanlışlık Olabiliyor =)
Evet namespacenin olması gerek elbette,ben sadece eklenen kısmını yazmıştım.Hazır bir proje açıp içine bu kısmı kopyalayabilirsin.
İyi günler şuan bir proje ile uğraşıyorum fakat takıldığım bir iki nokta oldu yardımcı olabilir misiniz? :(
Merhaba mail atabilirsiniz,yardımcı olmaya çalışırm.
Yorum Gönder