Hallo,
wie kann man die selektierten Einträge von der Einen in die andere Listview verschieben?
Ich hatte schon folgendes ausprobiert:
Listview1_DoubleClick Event
(auch wenn der Präfix lb ist, ist es eine Listview)
Es klappt i-wie nicht.
Was ist daran falsch?
der Gesamte Code der Form:
Gruß
wie kann man die selektierten Einträge von der Einen in die andere Listview verschieben?
Ich hatte schon folgendes ausprobiert:
Listview1_DoubleClick Event
(auch wenn der Präfix lb ist, ist es eine Listview)
Es klappt i-wie nicht.
Was ist daran falsch?
der Gesamte Code der Form:
VB.NET-Quellcode
- Public Class btEntfernen
- ' API-Deklaration
- Private Declare Auto Function mciSendString Lib "winmm.dll" ( _
- ByVal lpstrCommand As String, _
- ByVal lpstrReturnString As String, _
- ByVal uReturnLength As Integer, _
- ByVal hwndCallback As Integer) As Integer
- Public Declare Function GetShortPathName Lib "kernel32" _
- Alias "GetShortPathNameA" ( _
- ByVal lpszLongPath As String, _
- ByVal lpszShortPath As String, _
- ByVal cchBuffer As Long) As Long
- 'Dim selectedFile As String = String.Empty
- Dim Liste As New System.Collections.Specialized.StringCollection
- Dim Stunde As String
- Dim Minute As String
- Dim Sekunden As String
- Dim Tage As String
- Dim Monat As String
- Dim Jahr As String
- Dim sBuffer As String = sBuffer * 255
- Dim sType As String
- Dim nResult As Long
- Dim sExt As String
- Dim bVideo As Boolean
- ' Daten-Struktur der MP3-Informationen
- Private Structure MP3Info
- Dim Titel As String
- Dim Interpret As String
- Dim Album As String
- Dim Jahr As String
- Dim Kommentar As String
- Dim Genre As String
- End Structure
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- tmrDatumUhrzeit.Start()
- 'For Each Eintrag In Liste
- ' ListBox1.Items.Add(Eintrag)
- 'Next
- 'Liste = My.Settings.Datenbank
- End Sub
- Private Sub btAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btAdd.Click
- If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
- 'selectedFile = OpenFileDialog1.FileName
- For Each Items In OpenFileDialog1.FileNames
- ShowMP3Infos(OpenFileDialog1.FileName)
- Next
- 'For Each Eintrag In ListBox1.Items
- ' Liste.Add(Eintrag)
- 'Next
- 'My.Settings.Datenbank = Liste
- End If
- 'OpenFileDialog1.ShowDialog()
- 'Dim Items As String
- 'For Each Songs In OpenFileDialog1.FileNames
- ' lbDB.Items.Add(Songs)
- 'Next
- End Sub
- Private Sub pbStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pbStop.Click
- End Sub
- Private Sub pbPlay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pbPlay.Click
- mciSendString("open """ & lbNextSongs.SelectedItems.ToString & """ alias Lied", Nothing, 0, 0)
- mciSendString("play Lied", Nothing, 0, 0)
- tmrStatus.Start()
- tmrUpMin.Start()
- tmrUpSec.Start()
- End Sub
- Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStripMenuItem.Click
- End
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btRandomPlaylist.Click
- RandomPlaylist.Show()
- End Sub
- Private Sub TempToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TempToolStripMenuItem.Click
- End Sub
- Private Sub tmrDatumUhrzeit_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrDatumUhrzeit.Tick
- 'If Now.Hour < 10 Then
- ' Stunde = "0" & Now.Hour
- 'End If
- 'If Now.Minute < 10 Then
- ' Minute = "0" & Now.Minute
- 'End If
- 'If Now.Second < 10 Then
- ' Sekunden = "0" & Now.Second
- 'End If
- 'If Now.Day < 10 Then
- ' Tage = "0" & Now.Day
- 'End If
- 'If Now.Month < 10 Then
- ' Monat = "0" & Now.Month
- 'End If
- TempToolStripMenuItem.Text = Now.Hour & ":" & Now.Minute & ":" & Now.Second & "Uhr" & " | " & Now.Day & "." & Now.Month & "." & Now.Year
- End Sub
- Private Sub tmrStatus_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrStatus.Tick
- Dim lol As String = GetMP3Length(lbNextSongs.SelectedItems.ToString)
- Dim ms As Integer = lol
- Dim ts As New TimeSpan(0, 0, 0, 0, ms)
- Dim Sec As String = ts.Seconds
- Dim Min As String = ts.Minutes
- Dim Stun As String = ts.Hours
- Label1.Text = Min & ":" & Sec
- End Sub
- ' Millisekunden nach mm:ss umrechnen
- Public Function FormatMilliSeconds(ByVal Milliseconds As Integer, _
- Optional ByVal sFormat As String = "mm:ss") As String
- Return CDate("00:00:00").AddMilliseconds(Milliseconds).ToString(sFormat)
- End Function
- Public Function GetMP3Length(ByVal FileName As String) As Integer
- ' MP3-Datei öffnen
- mciSendString("open " & Chr(34) & lbNextSongs.SelectedItems.ToString & Chr(34) & _
- " type MPEGVideo alias mp3audio", 0, 0, 0)
- ' Länge der Datei in Millisekunden auslesen
- Dim sReturn As String = Strings.Space(256)
- Dim lRet As Integer = mciSendString("status mp3audio length", _
- sReturn, sReturn.Length, 0&)
- ' MP3-Datei schliessen
- mciSendString("close mp3audio", 0, 0, 0)
- Return Val(sReturn)
- End Function
- Private Sub tmrUpSec_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrUpSec.Tick
- Label4.Text = Label4.Text + 1
- If Label4.Text >= 60 Then
- Label4.Text = 0
- End If
- End Sub
- Private Sub tmrUpMin_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrUpMin.Tick
- Label2.Text = Label2.Text + 1
- End Sub
- Private Sub lbDB_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles lbDB.DoubleClick
- End Sub
- ''' <summary>
- ''' Liest den ID3V1-Tag einer MP3-Datei aus
- ''' </summary>
- ''' <param name="sFile">MP3-Dateiname</param>
- ''' <returns>Struktur mit den MP3-Informationen</returns>
- Private Function ReadMP3Info(ByVal sFile As String) As MP3Info
- Dim oInfo As New MP3Info
- ' Prüfen, ob Datei auch existiert
- If System.IO.File.Exists(sFile) Then
- Try
- Dim oStream As New System.IO.FileStream(sFile, IO.FileMode.Open)
- ' Position des MP3-Tags
- oStream.Seek(-128, IO.SeekOrigin.End)
- ' jetzt 128 Bytes lesen
- Dim bData(127) As Byte
- oStream.Read(bData, 0, 128)
- ' Byte in String umwandeln
- Dim sData As String = System.Text.Encoding.Default.GetString(bData)
- ' Prüfen, ob Daten mit TAG beginnen
- If sData.Substring(0, 3) = "TAG" Then
- With oInfo
- ' jetzt die Struktur mit den Infos füllen
- .Titel = StripNull(sData.Substring(3, 30))
- .Interpret = StripNull(sData.Substring(33, 30))
- .Album = StripNull(sData.Substring(63, 30))
- .Jahr = StripNull(sData.Substring(93, 4))
- .Kommentar = StripNull(sData.Substring(97, 30))
- .Genre = StripNull(sData.Substring(127, 1))
- End With
- End If
- oStream.Close()
- Catch ex As Exception
- End Try
- End If
- ' Rückgabewert: MP3Info
- Return (oInfo)
- End Function
- ' Sucht nach dem ersten Null-Zeichen und gibt den linken Teil
- ' des Strings zurück
- Private Function StripNull(ByVal sData As String) As String
- Dim nPos As Integer = sData.IndexOf(Chr(0))
- If nPos >= 0 Then
- Return sData.Substring(0, nPos).TrimEnd
- Else
- Return sData.TrimEnd
- End If
- End Function
- ' MP3-Info lesen und anzeigen
- Private Sub ShowMP3Infos(ByVal sFile As String)
- Dim oInfo As MP3Info = ReadMP3Info(sFile)
- Dim SubItem As ListViewItem
- With lbDB.Items
- With lbDB.Items
- SubItem = .Add(oInfo.Titel)
- SubItem.SubItems.Add(oInfo.Interpret)
- SubItem.SubItems.Add(oInfo.Album)
- End With
- '.Clear()
- '.Add(oInfo.Titel)
- '.Add(oInfo.Interpret)
- '.Add(oInfo.Album)
- '.Add(oInfo.Jahr)
- '.Add(oInfo.Kommentar)
- '.Add(oInfo.Genre)
- End With
- End Sub
- End Class
Gruß