Web- und Software Development

Listview-Eintrag in Zwischenablage kopieren – Quicky C#

Written By: Mario Priebe - Nov• 08•08

Wenn man ein Listview mit Einträgen hat und man einen bestimmten Eintrag – hier im Beispiel mit der rechten Maustaste – kopieren möchte, geht man wie folgt vor:

In der Methode wo wir das Listview (viewListe) füllen, definieren wir auch gleich die Property “Tag”:

1
2
3
4
5
6
7
8
9
10
11
foreach (var item in List)
    {
        ListViewItem lvi = new ListViewItem(new string[3]
        {
            Convert.ToString(item.number),
            Convert.ToString(item.name),
            Convert.ToString(item.extra)
        });
    viewListe.Items.Add(lvi);
    lvi.Tag = item;
    }

Dann der Listview (viewListe) ein MouseClickEvent hinzufügen, ich kopiere hier den Namen in der Liste mit der rechten Maustaste:

1
2
3
4
5
6
7
8
9
ListView lvSender = (ListView)sender;
Information infoSender = (Information)lvSender.SelectedItems[0].Tag;
if (e.Button == MouseButtons.Right) {
        foreach (var item in List) {
            if (item.name.Equals(infoSender.name))
            //copy clipboard
           if (infoSender.name!= null) Clipboard.SetDataObject(infoSender.name, true);
        }
}

Ähnliche Beiträge

You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

One Comment

  1. Andre sagt:

    Du brauchst nichtmal den Sender vom Event zu casten, sondern du kannst einfach foldendes nutzen, um das ausgewählte Element zu bekommen:
    ListViewName.SelectedItems[0].SubItems[0].Text