winforms html编辑器[已关闭]

vd8tlhqk  于 2022-11-16  发布在  其他
关注(0)|答案(6)|浏览(160)

**已关闭。**此问题不符合Stack Overflow guidelines。当前不接受答案。

我们不允许问题寻求书籍、工具、软件库等的建议。您可以编辑问题,以便使用事实和引文来回答。
两年前就关门了。
Improve this question
任何人都知道一个很好的免费winforms html编辑器为idonnet。理想情况下,我希望html和预览模式沿着导出到pdf,word doc或类似的可能性。
虽然我可以从html输出创建自己的导出。
另一个很好的功能是从Word中粘贴,删除所有额外的标签,你通常结束了,但同样,这是一个很好的没有一个必需的。

tv6aics1

tv6aics11#

您可以在设计模式中使用WebBrowser控件,并在检视模式中使用另一个WebBrowser控件集。
若要将WebBrowser控件置于设计模式,您可以使用下列程式码。
这段代码是一个超级精简版的WYSIWYG编辑器,用于我们的一个软件产品。
只需创建一个新的Form,将一个WebBrowser控件放到它上面,然后将它放到Form中。

Me.WebBrowser1.Navigate("")
Application.DoEvents()
Me.WebBrowser1.Document.OpenNew(False).Write("<html><body><div id=""editable"">Edit this text</div></body></html>")

'turns off document body editing
For Each el As HtmlElement In Me.WebBrowser1.Document.All
    el.SetAttribute("unselectable", "on")
    el.SetAttribute("contenteditable", "false")
Next

'turns on editable div editing
With Me.WebBrowser1.Document.Body.All("editable")
    .SetAttribute("width", Me.Width & "px")
    .SetAttribute("height", "100%")
    .SetAttribute("contenteditable", "true")
End With

'turns on edit mode
Me.WebBrowser1.ActiveXInstance.Document.DesignMode = "On"
'stops right click->Browse View
Me.WebBrowser1.IsWebBrowserContextMenuEnabled = False
doinxwow

doinxwow2#

//CODE in C#
webBrowser1.Navigate("about:blank");
Application.DoEvents();
webBrowser1.Document.OpenNew(false).Write("<html><body><div id=\"editable\">Edit this text</div></body></html>"); 

foreach (HtmlElement el in webBrowser1.Document.All)
{
    el.SetAttribute("unselectable", "on");
    el.SetAttribute("contenteditable", "false");
}

webBrowser1.Document.Body.SetAttribute("width", this.Width.ToString() + "px");    
webBrowser1.Document.Body.SetAttribute("height", "100%");     
webBrowser1.Document.Body.SetAttribute("contenteditable", "true");
webBrowser1.Document.DomDocument.GetType().GetProperty("designMode").SetValue(webBrowser1.Document.DomDocument, "On", null);
webBrowser1.IsWebBrowserContextMenuEnabled = false;
wmomyfyw

wmomyfyw3#

此项目似乎不再可用。请参考其他答案之一。
我正在考虑使用Lutz Roeder(Reflector的创始人)的Writer。一个完全用C#编写的基本Html编辑器,按原样提供源代码。请在http://www.lutzroeder.com/dotnet/上查找

sdnqo3pr

sdnqo3pr4#

NET WinForms HTML编辑器控件,不是免费的,但它涵盖了你所寻找的一切。特别是,从MS Word粘贴功能真的很有效。单击MS Word粘贴按钮将从剪贴板粘贴内容到编辑器,并清理MS Word特定的标记,生成干净的XHTML。如果MS Word包含一些图像,这个编辑器也将检测这些图像,并且输出的XHTML将包含带有这些图像的正确路径的图像标记。
https://www.spicelogic.com/Products/NET-WinForms-HTML-Editor-Control-8

doinxwow

doinxwow5#

请参阅http://www.maconstateit.net/tutorials/JSDHTML/JSDHTML12/jsdhtml12-02.htm,以获取使用IE中编辑支持的示例HTML编辑器。
http://www.mozilla.org/editor/midasdemo/http://starkravingfinkle.org/blog/wp-content/uploads/2007/07/contenteditable.htm也在IE中工作,并给出了如何做一个工具栏的例子,字体,粗体,斜体等
看到这些问题为我的经验当我尝试做这样的事情。

我还遇到了许多其他问题,包括必须在jscript中编写调整大小逻辑,以使HTML编辑器与WinForm表单沿着调整大小,以及必须将默认的表单/控件颜色传递到HTML编辑器中,以便它看起来像是用户在Windows上更改了颜色方案。

因此,如果我需要再次执行此操作,我会使用第三方HTML编辑器(免费或付费)

wz8daaqr

wz8daaqr6#

如果您只需要简单地格式化一些文本,您可以在codeproject.com上找到许多开源项目。
我认为Netrix的功能是所有这些免费控件中最全面的。链接如下:https://github.com/joergkrause/netrix
当然,也有一些付费的商业控件,它们通常提供更友好的界面和更丰富的功能,比如这个BaiqiSoft.HtmlEditor它允许我合并/取消合并单元格,调整插入表格的行高和列宽。

相关问题