ListBox Drag and drop (Sürükle bırak) kullanımı

ListBox Drag and drop (Sürükle bırak) kullanımı

Merhaba Arkadaşlar Listboxda sürükle bırakma işlemi fare ile tutup başka bir listbox a bırakabilirsiniz.Bunun için method yazıp o methodlar üzerinden işlemler yapalım.

Form_loada aşağıdaki kodları yazalım.

this.LstHavuz.AllowDrop = true;
this.LstFcsf.AllowDrop = true;
this.LstSjf.AllowDrop = true;
this.LstRr.AllowDrop = true;

LstHavuz.DragDrop += new DragEventHandler(CtlDrop);
LstFcsf.DragDrop += new DragEventHandler(CtlDrop);
LstRr.DragDrop += new DragEventHandler(CtlDrop);
LstSjf.DragDrop += new DragEventHandler(CtlDrop);

LstHavuz.DragEnter += new DragEventHandler(CtlEnter);
LstFcsf.DragEnter += new DragEventHandler(CtlEnter);
LstRr.DragEnter += new DragEventHandler(CtlEnter);
LstSjf.DragEnter += new DragEventHandler(CtlEnter);
this.DragEnter += new DragEventHandler(CtlEnter);

LstHavuz.MouseDown += new MouseEventHandler(CtlDown);
LstFcsf.MouseDown += new MouseEventHandler(CtlDown);
LstRr.MouseDown += new MouseEventHandler(CtlDown);
LstSjf.MouseDown += new MouseEventHandler(CtlDown);

———————————-0———————0——————————–0——————

aşağıdaki değişkenleri parantez sonuna tanımlayalım.

ListBox Ctl;
int identity = 0;

————————————-0————————0——————0—————————

Burdada yukarıda bahsettiğimiz methodlarımızın kodları

private void CtlEnter(object sender,DragEventArgs e)
{
e.Effect = DragDropEffects.Copy;
((ListBox)sender).Items.Remove(e.Data.GetData(DataFormats.StringFormat));
}
private void CtlDrop(object sender, DragEventArgs e)
{
if(e.Data.GetDataPresent(DataFormats.StringFormat))
{
// if (Ctl != null) { Ctl.Items.Remove(Ctl.SelectedItem); }
((ListBox)sender).Items.Add(e.Data.GetData(DataFormats.StringFormat));

}
}
private void CtlDown(object sender, MouseEventArgs e)
{
if(((ListBox)sender).SelectedIndex>-1)
{
Ctl = (ListBox)sender;
Ctl.DoDragDrop(Ctl.SelectedItem, DragDropEffects.Copy);

}
}

—————————–0——————–0——————–0————————-

Arkadaşlar kopyalama işlemi tüm listboxlar için çalışıyor.Umarım işinize yarar.