Nie mogę kopiować/wklejać elementów z mojej listy do żadnego dokumentu (Excel, Word, .txt). Musiałbym wybrać wiele pozycji w polu listy. Szukałem tego, ale wydaje się, że jest tam wiele niejasnych odpowiedzi. Czy ktoś może mnie poprowadzić?

Dzięki!

5
User124726 13 lipiec 2011, 09:17

2 odpowiedzi

Najlepsza odpowiedź

Wszystko, co musisz zrobić, to zezwolić SelectionMode na MultiSimple lub MultiExtended, a następnie możesz użyć kolekcji SelectedItems, aby skopiować do schowka w zdarzeniu KeyDown pola listy

Po prostu

ListBox1.SelectionMode = SelectionMode.MultiSimple w form.load Wydarzeniu

I użyj tego kodu (uwaga: pole listy ma nazwę ListBox1)

Private Sub ListBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles ListBox1.KeyDown

    If e.Control AndAlso e.KeyCode = Keys.C Then
        Dim copy_buffer As New System.Text.StringBuilder
        For Each item As Object In ListBox1.SelectedItems
            copy_buffer.AppendLine(item.ToString)
        Next
        If copy_buffer.Length > 0 Then
            Clipboard.SetText(copy_buffer.ToString)
        End If
    End If
End Sub
12
Tim Schmelter 8 listopad 2013, 03:17
1
Wielkie dzięki. Zadziałało. Właśnie usunąłem - MessageBox.Show("Skopiowane elementy do schowka") - Stackoverflow jest niesamowity!
 – 
User124726
13 lipiec 2011, 10:37
Wiem, że to jest naprawdę stare, ale dla innych potrzeb (takich jak moje) możesz również dostosować ten kod do kopiowania/wklejania pojedynczych elementów. Przez całe moje życie nie wiem, dlaczego to nie jest domyślne zachowanie, ale dzięki Rajeevowi za to, że znalazłem tam 90%!
 – 
mbm29414
24 czerwiec 2013, 21:48
Prawdopodobnie warto dodać e.SuppressKeyPress = True, aby uniknąć wybierania pierwszego elementu zaczynającego się od C.
 – 
Razvan Socol
24 grudzień 2014, 17:09

Wstaw richtextbox i dodaj to:

For x As Integer = 0 To ListBox1.Items.Count - 1
    RichTextBox1.AppendText(ListBox1.Items(x).ToString & Environment.NewLine)
Next
0
gniourf_gniourf 1 styczeń 2013, 11:43