-4

类似于 WYSIWYG(所见即所得)编辑器,我希望用户能够直观地编辑 html 文档并移动对象。如何为 Web 浏览器控件打开这些 html 编辑功能?

我的环境是 Visual Studio 2010,Windows 7 64 位。

我想启用 Web 浏览器控件的 html 编辑功能(http://msdn.microsoft.com/en-us/library/aa752040%28v=VS.85%29.aspx)。

注意:Web 浏览器控件的代码正在专用编辑器中使用,并且太大且太多,无法在此处发布,但如果有人想要完整源代码,我可以稍后发布指向它的链接。这是一个大型项目,请参考这里,因为我试图在发布他们的或在这里之前与谷歌交谈和搜索:http: //social.msdn.microsoft.com/Forums/vstudio/en-US/1e5acdb2-9366-4258-890a -86eaaa1086ee/html-expert-needed

4

2 回答 2

2

WebBrowser 控件有一个内置的WYSIWYG mini - HTML编辑器。你可以使用它。以下是如何打开该编辑模式的示例:

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    ' I do this for this example, so that we have some elements loaded. 
    ' For you, you will need to add the tags from your code for various HTML elements.
    WebBrowser1.Navigate("http://google.com")
End Sub

Private Sub WebBrowser1_DocumentCompleted(sender As System.Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    ' To turn On the edit mode.
    Dim axObj As New Object
    axObj = WebBrowser1.ActiveXInstance
    axObj.document.designmode = "On"
End Sub
于 2012-12-09T10:31:14.667 回答
0

对于阅读本文的新人,这里的相关代码部分最终解决了我从上面的 msdn 论坛帖子中引用的所有内容:

Private Sub wb_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) 处理 wb.DocumentCompleted ' Tabp.wb_DocumentCompleted - Internet 相关文档完成例程

    If doc IsNot Nothing Then
        If m_EditMode = True Then
            doc.designMode = "On"
        Else
            doc.designMode = "Off"
        End If
    End If

    If wb.Document IsNot Nothing Then HTMLDOC = wb.Document

    If wb.CanGoBack Then
        mbBack.ImageIndex = ImglstImages.cVLeftArrowQuiescent
        mbBack.Enabled = True
    Else
        mbBack.ImageIndex = ImglstImages.cVLeftArrowGreyed
        mbBack.Enabled = False
    End If
    If wb.CanGoForward Then
        mbforward.Enabled = True
        mbforward.ImageIndex = ImglstImages.cVRightArrowQuiescent
    Else
        mbforward.Enabled = False
        mbforward.ImageIndex = ImglstImages.cVRightArrowGreyed
    End If
    wb.AllowNavigation = False
    cmbxAddressbar.Text = wb.Url.ToString
    AddIfUnique(cmbxAddressbar.Text)
    If Form1.GetClassIdentifier = m_ClassIdentifier Then Form1.ProgBar.Visible = False
    wb.AllowNavigation = True
    PU.Clear() '''''
    wb.Focus()
End Sub

这就是我所拥有的地址的问题。总而言之,这是用于代码的两个主要问题:

  1. html 编辑功能在 windows 7 sp1 上被禁用,禁止使用(在下面的答案之前,我帮助的原作者未能正确编码他/她的 HTML 编辑器)。
  2. 代码的原作者没有包含一个 document_completed 事件,使得之前的代码无法在新的 windows 7 sp1 环境中正常工作。注意:这是一个个人编码项目,是的,作者允许我根据需要使用代码和/或编辑它。注意:这是上面使用的原始答案。我想展示我的代码,所以每个人都不会认为我是凭空做的。
于 2012-12-07T20:36:44.607 回答