C# Basit Drag Drop İşlemleri Örnek Uygulama

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% [?]


