65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 ExecWB 与原生 .NET 2.0 WebBrowser 控件

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.67/5 (5投票s)

2008年6月17日

CPOL

1分钟阅读

viewsIcon

127469

如何通过访问 ExecWB 来缩放标准的 WebBrowser 控件。

引言

在 VB.NET 2008 环境中最令人困惑但又有趣的组件之一是捆绑的标准 WebBrowser 控件(或者类,如果你更喜欢的话)。它暴露了许多常用方法和属性,但缺少一个在完整浏览器(又名 SHDocVwIeframe.dll)版本中可以找到的最有用的元素,即 ExecWB 命令。以下类提供了一个简单的示例,说明如何从 System.Windows.Forms.WebBrowser 类利用 ExecWB 的强大功能。

背景

这个解决方案的出现源于我对使用 WebBrowser 控件的研究,并偶然进入了主题变体的复杂世界。为什么无法在一个解决方案中利用所有这些功能,我无法理解。然而,我的任务是继续简化关于 Microsoft WebBrowser 的统一理论。

使用代码

  1. 在 VB.NET 2008 中创建一个新项目
  2. 在设计模式下显示你的窗体
  3. 添加一个标准的 WebBrowser 控件,将其从工具箱拖动到窗体上
  4. 在属性网格中将 WebBrowserURL 属性更改为类似如下内容:https://codeproject.org.cn
  5. 从工具箱向窗体添加一个 Button 控件
  6. Button 的 Text 属性从 Button1 更改为 Zoom
  7. 切换到源代码编辑模式
  8. 替换代码,它应该如下所示
Class Form1

End Class

为以下代码:

Public Class Form1
Private Enum Exec
  OLECMDID_OPTICAL_ZOOM = 63
End Enum
Private Enum ExecOpt
  OLECMDEXECOPT_DODEFAULT = 0
  OLECMDEXECOPT_PROMPTUSER = 1
  OLECMDEXECOPT_DONTPROMPTUSER = 2
  OLECMDEXECOPT_SHOWHELP = 3
End Enum
Private Sub Button1_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button1.Click
  Try
    Dim Res As Object = Nothing
    Dim MyWeb As Object
    MyWeb = Me.WebBrowser1.ActiveXInstance
    MyWeb.ExecWB(Exec.OLECMDID_OPTICAL_ZOOM, _
          ExecOpt.OLECMDEXECOPT_DONTPROMPTUSER, 50, IntPtr.Zero)
  Catch ex As Exception
    MsgBox("Error:" & ex.Message)
  End Try
 End Sub
End Class

关注点

上面的代码仅显示了缩放网页的枚举。要使用所有 OLECMDID 枚举命令,只需将它们添加到上面显示的 Enum Exec 中。你可以在 MSDN 上找到所有可用的枚举。

历史

这是此解决方案的第一个版本。如果有人对如何使其更简洁有任何建议,请告诉我。

© . All rights reserved.