vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2018
 
zurück
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:     [ Jetzt bewerten ]Views:  19.109 
www.tools4vb.deSystem:  Win2k, WinXP, Vista, Win7, Win8, Win10 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)

Dieser Tipp wurde bereits 19.109 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


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.
 
   

Druckansicht Druckansicht Copyright ©2000-2018 vb@rchiv Dieter Otter
Alle 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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel