ListBox und ListView in die Zwischenablage mit VB.NET

In der Entwicklung mit VB.NET und C# kommt oft ein ListView oder auch eine ListBox zum Einsatz. Diese Inhalte können ganz einfach in die Zwischenablage kopiert werden. Bei einer ListBox ist das einfacher, da es nur eine Spalte gibt. Bei einem ListView ist das auch möglich, allerdings hat man mehrere Spalten und damit auch mehr Code.

ListView VB.NET C#

Inhalte kopieren – in die Zwischenablage

Für den Benutzer ist die Bedienung oft einfacher, wenn man mit einem einfachen Klick die Inhalte einer ListBox oder eines ListView in die Zwischenablage kopieren kann. Das ist mit relativ wenig Code in VB.NET und C# realisierbar.

ListBox

Um die Inhalte einer Listbox in die Zwischenablage zu kopieren, ist relativ wenig Code nötig. Denn in einer List Box stehen die Inhalte untereinander. Hier hat man so zusagen lediglich eine Spalte.

So kopiert man den Inhalt der Listbox in VB.NET:

Imports System.text

Public Sub CopyListBoxToClipboard(ByVal yourLB As ListBox) 

Dim yourContent As New StringBuilder 

     For i As Integer = 0 To yourLB.Items.Count - 1 
          yourContent.Append(yourLB.Items(i).ToString) 
          yourContent.Append(vbCrLf) ' vbCrLf = new Line
     Next 

     My.Computer.Clipboard.SetText(yourContent.ToString) 

End Sub 

Ebenfalls ist das natürlich mit C# Code möglich:

using System.Text;

public void CopyListBoxToClipboard(ListBox yourLB)
{
     StringBuilder yourContent = new StringBuilder();

     for (int i = 0; i < yourLB.Items.Count; i++)
     {
          yourContent.Append(yourLB.Items[i].ToString());
          yourContent.Append("\n");
     }

     Clipboard.SetText(yourContent.ToString());
}

ListView

Bei einem ListView ist es ein wenig aufwändiger die Inhalte in die Zwischenablage kopieren zu lassen. Denn hier hat man nicht nur Inhalte untereinander, sonder auch nebeneinander, wie im Bild oben zu sehen. Trotzdem ist es mit VB.NET und C# umzusetzen.

So lässt sich ein ListView mit VB.NET in die Zwischenablage kopieren:

Imports System.text

Public Sub CopyListViewToClipboard(ByVal yourLV As ListView)

   Dim yourContent As New StringBuilder   

   For i As Integer = 0 To yourLV.Columns.Count - 1
       yourContent.Append(yourLV.Columns(i).Text)
       yourContent.Append(vbTab)
   Next

   yourContent.Append(vbCrLf)

   For i As Integer = 0 To yourLV.Items.Count - 1
       For j As Integer = 0 To yourLV.Columns.Count - 1
           yourContent.Append(yourLV.Items(i).SubItems(j).Text)
           yourContent.Append(vbTab)
       Next
       yourContent.Append(vbCrLf)
   Next

   My.Computer.Clipboard.SetText(yourContent.ToString)

End Sub

Auch mit C# lassen sich die ListView Inhalte in das Clipboard kopieren:

using System.Text;

public void CopyListViewToClipboard(ListView yourLV)
{
     StringBuilder yourContent = new StringBuilder();

     for (int i = 0; i < yourLV.Columns.Count; i++)
     {
        yourContent.Append(yourLV.Columns[i].Text);
        yourContent.Append("\t");
     }

     yourContent.Append("\n");

     for (int i = 0; i < yourLV.Items.Count; i++)
     {
        for (int j = 0; j < yourLV.Columns.Count; j++)
        {
            yourContent.Append(yourLV.Items[i].SubItems[j].Text);
            yourContent.Append("\t");
        }

        yourContent.Append("\n");
    }

    Clipboard.SetText(yourContent.ToString());
}
Johannes Huber
 

In seiner Freizeit macht Johannes nichts lieber, als für ITnator Beiträge zu schreiben. Input bekommt er hierfür von Problemen in der IT Administration von Servern, Clients und vielen weiteren IT Komponenten.

Click Here to Leave a Comment Below 0 comments