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.