Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 为什么不能使用滑块设置AxWindowsMediaPlayer对象的音量?_Vb.net_Axwindowsmediaplayer - Fatal编程技术网

Vb.net 为什么不能使用滑块设置AxWindowsMediaPlayer对象的音量?

Vb.net 为什么不能使用滑块设置AxWindowsMediaPlayer对象的音量?,vb.net,axwindowsmediaplayer,Vb.net,Axwindowsmediaplayer,每当我试图这样说媒体播放器的音量时: Private Sub SndMasterSlider_ValueChanged(sender As Object, e As EventArgs) Handles SndMasterSlider.ValueChanged Player1.settings.volume = SndMasterSlider.Value End Sub 我收到此错误:AxInterop.WMPLib.dll中发生了类型为“System.Windows.Forms.Ax

每当我试图这样说媒体播放器的音量时:

Private Sub SndMasterSlider_ValueChanged(sender As Object, e As EventArgs) Handles SndMasterSlider.ValueChanged
    Player1.settings.volume = SndMasterSlider.Value
End Sub

我收到此错误:
AxInterop.WMPLib.dll中发生了类型为“System.Windows.Forms.AxHost.InvalidActiveXStateException”的异常,但未在用户代码中进行处理
假设滑块是
轨迹栏
控件,则在创建表单时会出现该异常(您没有说在哪里,但我敢打赌这是在哪里)。这是因为设计器代码将设置
,从而在创建
AxWMP
控件之前触发ValueChanged事件:

 Me.TrackBar1.Value = 50
即使正在创建表单,这也会触发事件。您可以设置一个标志,指示何时处理
ValueChanged
事件,手动添加处理程序,或者只使用
滚动
事件,当用户实际移动拇指时,该事件将触发

Private Sub TrackBar1_Scroll(...
    AxWMP.settings.volume = TrackBar1.Value
End Sub

如何实例化OCX控件?此外,WMP的最小和最大卷数应该是0到100。简短回答:使用滚动事件而不是ValueChanged@porkchop我没有。我猜这就是问题所在。滚动事件由于某种原因不起作用。每当我滚动轨迹栏时,都不会发生任何事情。(这是一个
gTrackBar
,不确定是否有任何变化。gTrackBar听起来像一个变量名。标准MS/NET TrackBar使用滚动事件作为默认事件(单击控件并打开该事件),如果打开到ValueChanged,则可能是另一个控件。另一种方法是使用以False开头的标志,在表单加载结束时将其设置为true;然后在ValueChanged事件的顶部添加:
如果_FormLoadedFlag=False,则退出Sub
。这将阻止它尝试在AxWMp控件之前设置卷它已经被创造出来了。