Merhaba arkadaşlar benim bir mp3 playerim var listbox uzerinden mmp ile listboxtaki şarkıları dinliyorum.Fakat fazla kullanışlı olmadığı dikkatimi cekti illaki butona bas openfiledialog ile eklemek gerekiyor.ben listboxa surukle bırak işlemi yaptım.Yaptığım işlem :
PHP Code:
Private Sub ListBox1_DragDrop(sender As Object, e As DragEventArgs) Handles ListBox1.DragDrop
Dim path As String() = CType(e.Data.GetData(DataFormats.FileDrop), String())
For Each abov As String In path
ListBox1.Items.Add(abov)
A.URL = abov(ListBox1.SelectedIndex)
Next
End Sub
Private Sub ListBox1_DragEnter(sender As Object, e As DragEventArgs) Handles ListBox1.DragEnter
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.Copy
End If
End Sub
Şimdi bu sistemle ekliyorum fakat listboxtaki itemlere doubleclik atınca o şarkıyı calıyordu fakat illaki openfiledialog ile secince calıyor.Dışarıdan bir şarkıyı listboxa atınca muzik calmıyor.Ayrıca listboxa openfiledialog ile eklediğim itemlerin sadece isimi gozukuyor uzantıları gozukmuyor.Dışarıdan surukle bırak yaptıklarımda hem uzantı gozukuyor hemde calışmıyor.
Resimle izah etmeye calışayim :

1 Numaralı olan surukle bırak ile eklenmiş olan şarkı
2 Numaralı olan ise openfiledialog ile eklenmiş olan şarkı
======
1 Numaralı şarkı calmıyor ==== 2 numaralı şarkı calıyor.
Not : Buton 1 de Kullandığım kodlar ise
PHP Code:
If (OpenFileDialog2.ShowDialog = Windows.Forms.DialogResult.OK) Then
filenames = OpenFileDialog2.SafeFileNames
paths = OpenFileDialog2.FileNames
For i As Integer = 0 To filenames.Length - 1
ListBox1.Items.Add(filenames(i))
Next
End If
////////////// COZUM BİR BAŞKA FORUMDAN BULDUM ///////
PHP Code:
Arkadaslar bilindigi uzere gelismis mp3 playerlarda dosyayi surukleyip progamin listesine biraktiginizda listeye ekler.. Peki bu nasil olur ??
Listbox'in DragDrob Olayi ile..
Oncelikle yapmaniz gereken forma bir Listbox ekleyip
Listbox'in icine dosya suruklemeye izin vermesi icin
Listbox Ozelliklerinden AllowDrop ozelligini True yapmalisiniz..
Daha sonra Listbox'in DragOver Olayina
PHP Code:
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.All
End If
kodlarini eklemelisiniz..
Son Olarak Listbox'in DragDrop Olayina
PHP Code:
Dim file As String() = DirectCast(e.Data.GetData(DataFormats.FileDrop, True), System.String())
For Each s As String In file
ListBox1.Items.Add(s)
Next
Kodlarini ekliyoruz.. Tamamdir..Calistirip deneyebilirsiniz..
Peki Bunu Bazi dosya formatlari ile kisitlamak isterseniz.. Ben mp3 player'im da kullandigim kodlari ornek olarak veriyorum..
PHP Code:
Private Sub ListBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragDrop
Dim file As String() = DirectCast(e.Data.GetData(DataFormats.FileDrop, True), System.String())
For Each s As String In file
If s.Contains(".mp3") Then
ListBox1.Items.Add(s)
Else
Exit Sub
End If
Next
End Sub
Private Sub ListBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragEnter
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.All
End If
End Sub
Sadece mp3 dosyalarini ekleyecektir.siz bunu istediginiz gibi gelistirebilirsiniz.. Ornegin bir klasor tasindigi zaman onun ve tum alt klasorlerinin icindeki mp3 dosyalarini ekleyebilirsiniz listeye.. (EI Player'da oldugu gibi)
Not Olarak Bir yararli bilgi daha vereyim..
Diyorsanizki arkadasim ben tum dosya yolunu degil sadece dosyanin adini eklemek istiyorum.. Yapmaniz gereken
PHP Code:
ListBox1.Items.Add(System.IO.Path.GetFileNameWitho utExtension(s))
Uzantisi olmadan sadece dosya ismini ekleyecektir..
Kodlarin bazi bolumleri alintidir..
Surc-i Lisan etti isek Affola..
PHP Code:
Private Sub ListBox1_DragDrop(sender As Object, e As DragEventArgs) Handles ListBox1.DragDrop
Dim path As String() = CType(e.Data.GetData(DataFormats.FileDrop), String())
For Each abov As String In path
ListBox1.Items.Add(abov)
A.URL = abov(ListBox1.SelectedIndex)
Next
End Sub
Private Sub ListBox1_DragEnter(sender As Object, e As DragEventArgs) Handles ListBox1.DragEnter
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.Copy
End If
End Sub
Şimdi bu sistemle ekliyorum fakat listboxtaki itemlere doubleclik atınca o şarkıyı calıyordu fakat illaki openfiledialog ile secince calıyor.Dışarıdan bir şarkıyı listboxa atınca muzik calmıyor.Ayrıca listboxa openfiledialog ile eklediğim itemlerin sadece isimi gozukuyor uzantıları gozukmuyor.Dışarıdan surukle bırak yaptıklarımda hem uzantı gozukuyor hemde calışmıyor.
Resimle izah etmeye calışayim :
1 Numaralı olan surukle bırak ile eklenmiş olan şarkı
2 Numaralı olan ise openfiledialog ile eklenmiş olan şarkı
======
1 Numaralı şarkı calmıyor ==== 2 numaralı şarkı calıyor.
Not : Buton 1 de Kullandığım kodlar ise
PHP Code:
If (OpenFileDialog2.ShowDialog = Windows.Forms.DialogResult.OK) Then
filenames = OpenFileDialog2.SafeFileNames
paths = OpenFileDialog2.FileNames
For i As Integer = 0 To filenames.Length - 1
ListBox1.Items.Add(filenames(i))
Next
End If
////////////// COZUM BİR BAŞKA FORUMDAN BULDUM ///////
PHP Code:
Arkadaslar bilindigi uzere gelismis mp3 playerlarda dosyayi surukleyip progamin listesine biraktiginizda listeye ekler.. Peki bu nasil olur ??
Listbox'in DragDrob Olayi ile..
Oncelikle yapmaniz gereken forma bir Listbox ekleyip
Listbox'in icine dosya suruklemeye izin vermesi icin
Listbox Ozelliklerinden AllowDrop ozelligini True yapmalisiniz..
Daha sonra Listbox'in DragOver Olayina
PHP Code:
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.All
End If
kodlarini eklemelisiniz..
Son Olarak Listbox'in DragDrop Olayina
PHP Code:
Dim file As String() = DirectCast(e.Data.GetData(DataFormats.FileDrop, True), System.String())
For Each s As String In file
ListBox1.Items.Add(s)
Next
Kodlarini ekliyoruz.. Tamamdir..Calistirip deneyebilirsiniz..
Peki Bunu Bazi dosya formatlari ile kisitlamak isterseniz.. Ben mp3 player'im da kullandigim kodlari ornek olarak veriyorum..
PHP Code:
Private Sub ListBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragDrop
Dim file As String() = DirectCast(e.Data.GetData(DataFormats.FileDrop, True), System.String())
For Each s As String In file
If s.Contains(".mp3") Then
ListBox1.Items.Add(s)
Else
Exit Sub
End If
Next
End Sub
Private Sub ListBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragEnter
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.All
End If
End Sub
Sadece mp3 dosyalarini ekleyecektir.siz bunu istediginiz gibi gelistirebilirsiniz.. Ornegin bir klasor tasindigi zaman onun ve tum alt klasorlerinin icindeki mp3 dosyalarini ekleyebilirsiniz listeye.. (EI Player'da oldugu gibi)
Not Olarak Bir yararli bilgi daha vereyim..
Diyorsanizki arkadasim ben tum dosya yolunu degil sadece dosyanin adini eklemek istiyorum.. Yapmaniz gereken
PHP Code:
ListBox1.Items.Add(System.IO.Path.GetFileNameWitho utExtension(s))
Uzantisi olmadan sadece dosya ismini ekleyecektir..
Kodlarin bazi bolumleri alintidir..
Surc-i Lisan etti isek Affola..
__________________