我尝试使用WebBrowser Control检测全屏模式...
Private Sub WebBrowser1_OnFullScreen(ByVal FullScreen As Boolean)
Dim itState As Integer
itState = chkOnTop.Value
If FullScreen = True Then
chkOnTop.Value = vbUnchecked
Else
chkOnTop.Value = itState
End If
End Sub
但即使我尝试获得这样的简单返回值(当你双击它时,获得全屏模式)它也无法正常工作:
Private Sub WebBrowser1_OnFullScreen(ByVal FullScreen As Boolean)
Form1.Caption = CStr(FullScreen)
End Sub
这是htm文件名为" example.htm"加载到WebBrowser控件:
<html>
<body topmargin="0" leftmargin="0" scroll="no">
<iframe
width="640"
height="385"
src="http://www.youtube.com/embed/xtYIEBOQ1eQ?rel=0&autoplay=1"
allowfullscreen="true"
menu="false"
frameborder="0">
</iframe>
</body>
</html>
当我按下Form上的CommandButton时加载:
WebBrowser1.Navigate App.Path & "\example.htm"
所以,我真正的问题是:
当视频加载到WebBrowser Control中并双击视频时,它会进入全屏模式,如果再次双击,则会返回正常视图模式。
现在我希望发现这些事件!
有人能帮助我吗?
答案 0 :(得分:0)
This MSDN页面提到WebBrowser对象不支持该事件。但是,我确实发现了这段代码:
Private Sub Form_Activate()
WebBrowser1.FullScreen = True
End Sub
Private Sub WebBrowser1_OnFullScreen(ByVal FullScreen As Boolean)
MsgBox FullScreen
End Sub
成功显示消息框,其值为True。所以,我不确定为什么这不能用你的第二段代码。
另一方面,这行代码有问题:
chkOnTop.Value = Unchecked
正确的常量是&#34; vbUnchecked&#34;,您在VB6 doc中查找CheckBox控件时看不到。 (请查看常量部分here;您将看到&#34;未选中&#34;只是Value属性值0的描述,而不是等于0的常量。)此外,您的所有代码行都带有字符串&#34; itState&#34;是多余的;您只需将当前值存储到变量中并重置值,而无需更改它。
答案 1 :(得分:0)
双击表单将最大化表单窗口,它不会使webbrowser全屏。
你双击什么?
使用1个webbrowser控件和1个计时器控件创建一个只有1个表单的新项目,并输入以下代码:
'1 form with:
' 1 webbrowser control: Name=WebBrowser1
' 1 timer control : Name=Timer1
Option Explicit
Private Sub Form_Click()
With WebBrowser1
.FullScreen = Not .FullScreen
End With 'Webbrowser1
End Sub
Private Sub Form_Load()
Timer1.Interval = 500
End Sub
Private Sub Timer1_Timer()
Caption = CStr(Now) & " : " & CStr(WebBrowser1.FullScreen)
End Sub
Private Sub WebBrowser1_OnFullScreen(ByVal FullScreen As Boolean)
Caption = "OnFullScreen event fired"
End Sub
Private Sub Form_Activate()
WebBrowser1.FullScreen = True
End Sub
当您单击表单的背景时,它将切换webbrowser控件的全屏状态
计时器将每秒两次显示全屏状态(前面加上当前时间以显示它是显示此内容的计时器)
当OnFullScreen事件触发时,它将在标题中显示(不以当前时间为前缀),它将在500毫秒内被计时器覆盖,但是当你注意时你会看到它
答案 2 :(得分:0)
n您的Form_load添加以下两行:
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None
Me.WindowState = FormWindowState.Maximized
显然,您可以将代码放在form_load之外的其他位置 - 根据您的包含列表,您可能需要或多或少的前置。
通过这种形式,我的VB6系统中的代码变得很好: Me.WindowState = vbMaximized 要么: Me.WindowState = FormWindowStateConstants.vbMaximized