vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Controls · ListBox & ComboBox   |   VB-Versionen: VB2005, VB200804.06.09
Inhalt einer ListBox in die Zwischenablage kopieren

Zwei Funktionen, mit denen sich der Inhalt einer ListBox in die Zwischenablage kopieren bzw. aus der Zwischenablage wieder einfügen lässt.

Autor:   Dieter OtterBewertung:  Views:  25.653 
www.tools4vb.deSystem:  Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Nachfolgend zwei Funktionen, mit denen sich der Inhalt einer ListBox in die Zwischenablage kopieren bzw. aus der Zwischenablage wieder einfügen lässt.

''' <summary>
''' Kopiert den Inhalt einer ListBox in die Zwischenablage
''' </summary>
''' <param name="ListBox">ListBox-Control</param>
''' <param name="OnlySelectedItems">True, wenn nur die selektierten 
''' Einträge kopiert werden sollen</param>
Public Sub ListBoxCopyToClipboard(ByVal ListBox As ListBox, _
  ByVal OnlySelectedItems As Boolean)
 
  If OnlySelectedItems Then
    ' nur die selektierten Einträge kopieren
    Dim items As New System.Text.StringBuilder
 
    ' alle selektierten Einträge durchlaufen
    For Each Item As String In ListBox.SelectedItems
      items.AppendLine(Item)
    Next
 
    If items.Length > 0 Then
      ' Ergebnis in die Zwischenablage kopieren
      My.Computer.Clipboard.SetText(items.ToString)
    End If
  Else
    ' alle Einträge kopieren
    ListBoxCopyToClipboard(ListBox)
  End If
End Sub
''' <summary>
''' Kopiert den Inhalt einer ListBox in die Zwischenablage
''' </summary>
''' <param name="ListBox">ListBox-Control</param>
Public Sub ListBoxCopyToClipboard(ByVal ListBox As ListBox)
  Dim items As New System.Text.StringBuilder
 
  ' alle Einträge durchlaufen
  For Each Item As String In ListBox.Items
    items.AppendLine(Item)
  Next
 
  If items.Length > 0 Then
    ' Ergebnis in die Zwischenablage kopieren
    My.Computer.Clipboard.SetText(items.ToString)
  End If
End Sub
''' <summary>
''' Fügt den Inhalt der Zwischenablage in eine ListBox ein.
''' </summary>
''' <param name="ListBox">ListBox-Control</param>
Public Function ListBoxCopyFromClipboard(ByVal ListBox As ListBox) As Boolean
  ' Enthält die Zwischenablage Text?
  If My.Computer.Clipboard.ContainsText(TextDataFormat.Text) Then
    ' Text aus der Zwischenablage holen
    Dim items As String = My.Computer.Clipboard.GetText(TextDataFormat.Text)
 
    ' abschließende Zeilenumbrüche entfernen
    items = items.TrimEnd(ControlChars.NewLine.ToCharArray)
 
    ' Inhalt der ListBox hinzufügen
    ListBox.Items.AddRange(items.Split(ControlChars.NewLine))
 
    Return True
  Else
    Return False
  End If
End Function

Aufrufbeispiel:

' alle selektierten Einträge in die Zwischenablage kopieren
ListBoxCopyToClipboard(ListBox1, True)
' gesamten Inhalt (alle Einträge) kopieren
ListBoxCopyToClipboard(ListBox1)
' Inhalt der Zwischenablage einfügen
ListBoxCopyFromClipboard(ListBox2)



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.