Filehost.ro - gazduire fisiere
Programare pe intelesul tuturor
Bine ati venit pe forum.
Nou pe simpatie:
deeazuzu82 pe Simpatie
Femeie
24 ani
Cluj
cauta Barbat
27 - 62 ani
Programare pe intelesul tuturorInregistrareLoginPozeNu sunteti logat. Lista Forumurilor Pe Tematici
Programare pe intelesul tuturor / .NET /

C# - drag and drop

Pagini: 1  
#1
noir2501
C# programmer
Din: Ploiesti
Postari: 4
hehe, mereu am vrut sa fac drag and drop. un exemplu simplu intre doua liste (ListView)
iata un exemplu ce muta stringuri dintr-o lista in alta.
Poate intereseaza pe cineva... sau macar sa va faceti o parere cat de usor e 

so... avem o forma si 2 liste : sursa -> ListS si destinatia ListD

Code:

private System.Windows.Forms.ListView listD;
private System.Windows.Forms.ListView listS;

procedeul are 3 pasi:

- copiem obiectul din sursa
- punem obiectl in destinatie
- daca am reusit, il eliminam din sursa

1. cand se apasa mouse-ul citim itemul selectat din lista si apelam funtia DoDragDrop()

Code:

private void listS_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
    if (listS.Items.Count < 1) return;
        ListViewItem item = listS.GetItemAt(e.X,e.Y);
    if (item == null) return;
    DragDropEffects ddel = DoDragDrop(item.Text, DragDropEffects.All);

// daca totul a fost ok, si s-a acceptat dropul de catre destinatie, se elimina itemul din sursa

    if (ddel == DragDropEffects.All)
        listS.Items.Remove(item);
}

2. La tragerea deasupra destinatiei, trimitem efectul "All" pentru a sti ca totul este ok si putem continua procedura de DragDrop

Code:

private void listD_DragOver(object sender, System.Windows.Forms.DragEventArgs e)
{
            e.Effect = DragDropEffects.All;
}

3. daca totul este ok, dupa ce verificam formatul, adaugam itemul in destinatie

Code:

private void listD_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
{
    if (e.Data.GetDataPresent(DataFormats.StringFormat))
    {
                listD.Items.Add((string)e.Data.GetData(DataFormats.StringFormat));
    }
}

that's all. knock yourself out with drag and drop!  :twisted:


_______________________________________
make a pilgrimage with me for the past (noir)

 
   
Pagini: 1  
Mergi la