初学VB。NET第一个程序遇到的问题,希望大家帮帮我,谢谢了!

hackate 2004-12-07 04:10:02
初学VB。NET第一个程序遇到的问题,希望大家帮帮我,谢谢了!

我的问题是这样的,我还是把代码贴出案例吧!

Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles MenuItem3.Click
On Error Resume Next
Dim i
Me.OpenFileDialog1.ShowDialog()
'For i = 0 To Me.OpenFileDialog1.FileNames.Length
'MsgBox(Me.OpenFileDialog1.FileNames(i).ToLower)
'Next
'Exit Sub

Me.AxWindowsMediaPlayer1.URL = Me.OpenFileDialog1.FileName
If Me.AxWindowsMediaPlayer1.URL = "" Then
MsgBox("请选择音乐播放!", 64, "播放提示")
Exit Sub
End If
Me.AxWindowsMediaPlayer1.Ctlcontrols.play()
End Sub

这个代码我解释一下,这个是我做的一个播放器,用的是mediaplay的控件,openfiledialog这个

是。NET自带的象commondialog那样的控件一样!
现在的问题是我把opendialog的multselect这个属性设置成TRUE了,也就是在我们选择播放音乐

的时候,可以多选择文件,不然每次只能选择一个文件播放,
可是这样的话,问题又来了!我不知道怎么办让这个播放器他都能把我选择的音乐播放出来啊,我

笨,我不管怎么弄,每次都只播一首,好郁闷啊!求求你们教教我了。。。谢谢!
希望能就我这个代码给我改改,谢谢!
...全文
251 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
hackate 2004-12-11
  • 打赏
  • 举报
回复
5555555555555555555555555555555555555

孟姜女,哭倒长城啊,555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
hackate 2004-12-08
  • 打赏
  • 举报
回复
Me.AxWindowsMediaPlayer1.Ctlcontrols.play()‘不能在这里播放。

你说不能放在FOR...NEXT循环里,你说放在那里呢,谢谢了,麻烦你了!真不好意思,我好苯苯的...
3tzjq 2004-12-08
  • 打赏
  • 举报
回复
不好意思!打错字了。应将arrPlayList = 0 改为 intPlayIndex = 0
If Not arrPlayList Is Nothing Then
arrPlayList.Clear()
Else
arrPlayList=New ArrayList
Endif

intPlayList = 0

Dim i As Int16
For i = 0 To Me.OpenFileDialog1.FileNames.Length - 1
arrPlayList.Add(Me.OpenFileDialog1.FileNames(i))'这里只是保存多选的文件列表。 Me.AxWindowsMediaPlayer1.Ctlcontrols.play()‘不能在这里播放。
‘如果窗体空间允许,你应用一个ListView来保存载入的文件列表,然后播放完后自动播放下一个文件。
Next
hackate 2004-12-08
  • 打赏
  • 举报
回复
555555555555555555又没人说了,完蛋了,真的完蛋了!
hackate 2004-12-07
  • 打赏
  • 举报
回复
Private intPlayIndex As Int32 '用来确定当前播放的文件。
Private arrPlayList As ArrayList
'写一个属性:
Private ReadOnly Property FileName(ByVal Index As Int32) As String '让URL=FileName(intPlayIndex )
Get
if Index>= arrPlayList.Count Then
Return arrPlayList(0).ToString
Else
Return arrPlayList(Index).ToString
Endif
End Get
End Property
Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click
On Error Resume Next
If OpenFileDialog1.ShowDialog(Me) = DialogResult.OK Then
'先复位
If Not arrPlayList Is Nothing Then arrPlayList.Clear()
arrPlayList = 0

Dim i As Int16
For i = 0 To Me.OpenFileDialog1.FileNames.Length - 1
arrPlayList.Add(Me.OpenFileDialog1.FileNames(i))
Me.AxWindowsMediaPlayer1.Ctlcontrols.play()
Next
End If
代码我现在写成这样,但是错误啊,不行啊!
'arrPlayList = 0 这句依然有错误啊!
我把这句注释也是不行啊,实现不了我的功能啊,你们帮帮我在检查看看好吗??
hackate 2004-12-07
  • 打赏
  • 举报
回复
555555555555,我怎么成小朋友了嘛!
兔子-顾问 2004-12-07
  • 打赏
  • 举报
回复
佩服佩服,楼上的都有耐心
GnuDoyng 2004-12-07
  • 打赏
  • 举报
回复
小朋友,把你代碼裏的Dim i改稱Dim i As Int16吧,以後你就會覺察到不這樣做你的程式效率很低的.
hackate 2004-12-07
  • 打赏
  • 举报
回复
up,up,up,up.................
hackate 2004-12-07
  • 打赏
  • 举报
回复
我只想把这个做出来啊,我不是程序员的,5555555555555!
sunrunming 2004-12-07
  • 打赏
  • 举报
回复
哎!.net中用VB.net不多呀。改行吧
hackate 2004-12-07
  • 打赏
  • 举报
回复
没人帮忙了, 帮帮我吧,我真的不懂嘛..
hackate 2004-12-07
  • 打赏
  • 举报
回复
Private intPlayIndex As Int32 '用来确定当前播放的文件。
Private arrPlayList As ArrayList
'写一个属性:
Private ReadOnly Property FileName(ByVal Index As Int32) As String '让URL=FileName(intPlayIndex )
Get
if Index>= arrPlayList.Count Then
Return arrPlayList(0).ToString
Else
Return arrPlayList(Index).ToString
Endif
End Get
End Property
Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click
On Error Resume Next
If OpenFileDialog1.ShowDialog(Me) = DialogResult.OK Then
'先复位
If Not arrPlayList Is Nothing Then arrPlayList.Clear()
arrPlayList = 0

Dim i As Int32
For i = 0 To Me.OpenFileDialog1.FileNames.Length - 1
arrPlayList.Add(Me.OpenFileDialog1.FileNames(i))
Next
End If

Me.AxWindowsMediaPlayer1.Ctlcontrols.play()

End Sub

我这样弄到程序里,好像错了,那个arrPlayList = 0 下面就打了波浪线了啊,不知道怎么办!!
hackate 2004-12-07
  • 打赏
  • 举报
回复
完了,我不懂这么复杂的啊,,,,。。几位大哥哥,能不能就我这个做出来我看看行么??
3tzjq 2004-12-07
  • 打赏
  • 举报
回复
要在myBase.Load或...Click事件中实例化arrPlayList.
3tzjq 2004-12-07
  • 打赏
  • 举报
回复
URL不接受数组的话可以这样:
先定义一变量:
Private intPlayIndex As Int32 '用来确定当前播放的文件。
Private arrPlayList As ArrayList
'写一个属性:
Private ReadOnly Property FileName(ByVal Index As Int32) As String '让URL=FileName(intPlayIndex )
Get
if Index>= arrPlayList.Count Then
Return arrPlayList(0).ToString
Else
Return arrPlayList(Index).ToString
Endif
End Get
End Property
'======================测试
if OpenFileDialog1.ShowDialog(me)=DialogResult.OK Then
'先复位
if Not arrPlayList is Nothing then arrPlayList.Clear()
arrPlayList=0

Dim i as int32
For i = 0 To Me.OpenFileDialog1.FileNames.Length - 1
arrPlayList.Add(Me.OpenFileDialog1.FileNames(i))
Next
End if

然后控制每播放完一首歌就让intPlayIndex +=1
MyNetLand 2004-12-07
  • 打赏
  • 举报
回复
如果设置opendialog的multiselect属性为TRUE,则FileName属性返回的是一个包含有所有文件名字符串。所以,可以先定义一个数组,分别取出文件史并存入数组。
然后把 Me.AxWindowsMediaPlayer1.Ctlcontrols.play() 语句修改为:
For k =0 to ArrayTp.Length-1
Me.AxWindowsMediaPlayer1.URL = ArrayTp(k)
Me.AxWindowsMediaPlayer1.Ctlcontrols.play()
Next

OK?
//以上代码,我没有实践的。

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧