以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  TabControl怎么根据选择的卡片项不同执行对应的动作!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=177479)

--  作者:cnsjroom
--  发布时间:2022/5/24 10:29:00
--  TabControl怎么根据选择的卡片项不同执行对应的动作!
图片点击可在新窗口打开查看
方式一:
Dim tb As WinForm.TabControl = e.Form.Controls("TabControl2")
If tb.SelectedIndex = 0  Then
    e.Form.Controls("Panel1").Basecontrol.controls("mplayer").close
End If
方式二:
Dim tb As WinForm.TabControl = e.Form.Controls("TabControl2")
If tb.SelectedPage.Text = "知识库"  Then
    e.Form.Controls("Panel1").Basecontrol.controls("mplayer").close
End If

两种方式均没有实现close关闭动作!
[此贴子已经被作者于2022/5/24 10:30:08编辑过]

--  作者:有点蓝
--  发布时间:2022/5/24 10:31:00
--  
方式一判断是如果选择的是第一个页签
方式二判断是如果选择的页签名称是xxx

根据自己的需要使用

--  作者:cnsjroom
--  发布时间:2022/5/24 10:39:00
--  回复:(有点蓝)方式一判断是如果选择的是第一个页签...
    Dim mplayer As new AxWMPLib.AxWindowsMediaPlayer()
    mplayer.name = "mplayer"
    mplayer.Dock = System.Windows.Forms.DockStyle.Fill
    e.Form.Controls("Panel1").Basecontrol.controls.add(mplayer)


在操作方式1.2之前运行了如上代码

然后操作方式1.2结果没有运行e.Form.Controls("Panel1").Basecontrol.controls("mplayer").close

且方式一还提示错误:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.1.30.2
错误所在事件:窗口,知识库,TabControl1,SelectedIndexChanged
详细错误信息:
未设置对象变量或 With 块变量。
[此贴子已经被作者于2022/5/24 10:41:39编辑过]

--  作者:有点蓝
--  发布时间:2022/5/24 10:54:00
--  
完整代码
--  作者:cnsjroom
--  发布时间:2022/5/24 11:12:00
--  回复:(有点蓝)完整代码
全局代码:Public mplayer As new AxWMPLib.AxWindowsMediaPlayer()

播放视频按钮代码:
Dim wb As WinForm.WebBrowser = e.Form.Controls("WebBrowser1")
Dim tb As WinForm.TabControl = e.Form.Controls("TabControl2")
Dim pc As WinForm.PictureBox = e.Form.Controls("PictureBox1")
tb.SelectedIndex=2
\'Dim mplayer As new AxWMPLib.AxWindowsMediaPlayer()
mplayer.name = "mplayer"
mplayer.Dock = System.Windows.Forms.DockStyle.Fill
e.Form.Controls("Panel1").Basecontrol.controls.add(mplayer)
mplayer.url =  vars("文件")
wb.Address = Nothing
pc.Image = GetImage(Nothing)

TabControl2控件SelectedIndexChanged代码:

Dim tb As WinForm.TabControl = e.Form.Controls("TabControl2")

If tb.SelectedPage.text = "知识库"  Then

    e.Form.Controls("Panel1").Basecontrol.controls("mplayer").ctlcontrols.pause

End If

\'

\'Dim tb As WinForm.TabControl = e.Form.Controls("TabControl2")

\'If tb.SelectedIndex = 0  Then

\'MessageBox.Show("1")

\'e.Form.Controls("Panel1").Basecontrol.controls("mplayer").close

\'End If


--  作者:有点蓝
--  发布时间:2022/5/24 11:30:00
--  

TabControl2控件SelectedIndexChanged代码:

Dim tb As WinForm.TabControl = e.Form.Controls("TabControl2")

If tb.SelectedPage.text = "知识库"  Then

    mplayer.ctlcontrols.pause

End If


--  作者:cnsjroom
--  发布时间:2022/5/24 11:36:00
--  回复:(有点蓝)TabControl2控件SelectedIndexChange...
提示如下错误:
---------------------------
编译错误:需要对程序集“Interop.WMPLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”(包含类型“WMPLib.IWMPControls”)的引用。请在项目中添加一个。
错误代码:mplayer.ctlcontrols.pause
---------------------------


--  作者:有点蓝
--  发布时间:2022/5/24 11:43:00
--  
请上传实例说明
--  作者:cnsjroom
--  发布时间:2022/5/24 16:16:00
--  回复:(有点蓝)请上传实例说明


以下内容是专门发给有点蓝浏览


麻烦老师指导下,另外在打开或关闭的时候 会报错
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.1.30.2
错误所在事件:窗口,知识库,BeforeClose
详细错误信息:
引发类型为“System.Windows.Forms.AxHost+InvalidActiveXStateException”的异常。

--  作者:有点蓝
--  发布时间:2022/5/24 16:35:00
--  
下面用法我测试都没有问题
e.Form.Controls("Panel1").Basecontrol.controls("mplayer").ctlcontrols.pause
mplayer.ctlcontrols.pause

关闭退出项目,删除项目所在的文件夹里的bin目录,然后重启项目试试。