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.
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()); }