Mayıs 2009 ayında yazılan yazılar...

C# Basit Drag Drop İşlemleri Örnek Uygulama

29 Mayıs 2009
http://img8.imageshack.us/img8/4269/dragdrop.jpg

Drag-Drop Uygulaması

Merhaba arkadaşlar sınavlar nedeniyle uzun zamandır birşeyler yazamıyordum…

Bu yazımda Drag and Drop işleminin nasıl yapıldığını anlatmaya çalışacağım..

Drag and Drop İşlemini anlatmakla işe koyulalım.Bilindiği gibi Drag, “Sürükle” Drop ise “Bırak” anlamına gelmektedir.

Örneğin Formun üstündeki bir nesneyi fare yardımıyla form üzerinde sürükleyip bi yerden başka bir yere taşımak istiyorsak Drag-Drop işlemlerini yapan mesaj yanıtlayıcı fonksiyonları kullanabiliriz.

Bir dosyayı bir klasorün üzerine sürüklemek, Okey oyununda taşları tahta üzerinde sürükleme veya Puzzle oyununda parçaları sürükleme işlemleri Drag-Drop işlemlerine örnek olarak gösterilebilir.

Formdaki Panel içindeki bir Resmi sürükleyip bulunduğu Panelden Diğer bir Panele bırakmak için yani Drag-Drop un gerçekleşmesi için 3 adet mesaj yanıtlayıcı fonksiyonu sırasıyla kullanmalıyız. Sırasıyla Diyorum Çünkü Drag-Drop işlemi  Birkaç Mesaj fonksiyonunun yayımlanması sonucu tamamlanmış olur.

Bu fonksiyonlar Sırasıyla MouseDown olayı –>DragEnter Olayi –> DragDrop Olayidir….

Örneğin 2 adet Panelimiz var ve Panelimizdeki butonu sürkleyip birinden diğerine taşımak istoyorsak aşağıdaki kodları yazmamız gerekecektir.

public Form1()
{
InitializeComponent();
//Bu satirsdan sonraki islemler normalde Properties Penceresinden
//Yapilabilir ama ordan yapinca Bakan kimse hangi nesne hangi
//fonksiyonu cagiriyor belli olmuyor o yuzden kodla yaziyorum
this.button1.DragDrop += new System.Windows.Forms.DragEventHandler(this.button1_DragDrop);
this.button1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.button1_MouseDown);
this.button1.DragEnter += new System.Windows.Forms.DragEventHandler(this.button1_DragEnter);

this.panel5.DragDrop += new System.Windows.Forms.DragEventHandler(this.button1_DragDrop);
this.panel5.DragEnter += new System.Windows.Forms.DragEventHandler(this.panel1_DragEnter);
this.panel6.DragDrop += new System.Windows.Forms.DragEventHandler(this.button1_DragDrop);
this.panel6.DragEnter += new System.Windows.Forms.DragEventHandler(this.panel1_DragEnter);
private void button1_MouseDown(object sender, MouseEventArgs e)
{
button1.DoDragDrop(button1, DragDropEffects.All);

}

private void button1_DragDrop(object sender, DragEventArgs e)
{
if (panel5.Controls.Contains(button1))
{

panel6.Controls.Add(button1);
return;
}
if (panel6.Controls.Contains(button1))
panel5.Controls.Add(button1);

}
private void button1_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Move;

}

Öğrenme amaçlı olduğundan  Hata yakalama Kodları eklenmemiştir.

Örnek Uygulamayı da indirerek olayları daha iyi anlayabilirsiniz…

Buyrun Buradan İndirin

Popularity: 3% [?]

Sınırsız Argüman Hesaplayabilen Hesap Makinesi Kaynak Kodu

10 Mayıs 2009

http://img23.imageshack.us/img23/5572/sinirsz.jpg

Veee… işte mutlu son!!! Bilindiği gibi daha önce sınırsız argüman hesaplayabilen hesap makinesi programı yayınlamıştım..

Şimdi de onun kaynak kodunu yayınlayacağım..

Kodlara bakınca da göreceksiniz gibi çok açık, kolay ve anlaşılırdır. Ayrıca Kodların yanında açıklamalarda yaptım daha anlaşılır olsun diye yinede anlamadığınız kısımlar olursa konu altına yorum şeklinde soru yazarak cevabını alabilirsiniz..

Birkaç ek kodu göz ardı edersek asıl hesaplama işini yapan kod satırları aşağıdadır…

while (Islem.Count != 1)//islem dizisinde tek sayi kalana kadar don
{                       //son kalan sayi tabiki sonuc :)
bolmeleribul:
for (i = 1; i < Islem.Count; i++)
{
if (Islem[i].ToString() == “/”)
{
sonuc = double.Parse(Islem[i - 1].ToString()) / //bolunen sayi
double.Parse(Islem[i + 1].ToString());//bolen sayi
Islem.RemoveAt(i – 1);//boluneni sil
Islem.RemoveAt(i – 1);//isareti sil
Islem.RemoveAt(i – 1);//boleni sil
Islem.Insert(i – 1, sonuc.ToString());

goto bolmeleribul;
}
}
carpmalaribul:
for (i = 1; i < Islem.Count; i++)
{
if (Islem[i].ToString() == “*”)
{
sonuc = double.Parse(Islem[i - 1].ToString()) * //carpan sayi
double.Parse(Islem[i + 1].ToString());//carpan sayi
Islem.RemoveAt(i – 1);//carpani sil
Islem.RemoveAt(i – 1);//isareti sil
Islem.RemoveAt(i – 1);//carpilan sil
Islem.Insert(i – 1, sonuc.ToString());

goto carpmalaribul;
}
}

eksileribul:
for (i = 1; i < Islem.Count; i++)
{
if (Islem[i].ToString() == “-”)
{
sonuc = double.Parse(Islem[i - 1].ToString()) – //cikan sayi
double.Parse(Islem[i + 1].ToString());//cikarilan sayi
Islem.RemoveAt(i – 1);//eksilen sil
Islem.RemoveAt(i – 1);//isareti sil
Islem.RemoveAt(i – 1);//cikan sil
Islem.Insert(i – 1, sonuc.ToString());

goto eksileribul;
}
}

toplamlaribul:
for (i = 1; i < Islem.Count; i++)
{
if (Islem[i].ToString() == “+”)
{
sonuc = double.Parse(Islem[i - 1].ToString()) + //toplanan1 sayi
double.Parse(Islem[i + 1].ToString());//toplanan2 sayi
Islem.RemoveAt(i – 1);//1. sayiyi sil
Islem.RemoveAt(i – 1);//isareti sil
Islem.RemoveAt(i – 1);//2. sayiyi sil
Islem.Insert(i – 1, sonuc.ToString());

goto toplamlaribul;
}
}
}

Uygulamanın Kaynak Kodunu Buradan İndirebilirsiniz…

Popularity: unranked [?]

Sitemizi N/A kişi takip ediyor.Aşağıdaki kutucuğa e-posta adresinizi girin sitemize yeni eklenen içerikten haberiniz olsun...

Sitemize üye olduktan sonra, e-posta adresinize bir onay maili gelecek. O maili onaylamazsanız, üyeliğiniz tamamlanmaz. 

RSS okuyucu ile takip edin...