任何人都知道.NET的免费winforms html编辑器。理想情况下,我想要html和预览模式以及导出到pdf,word doc或类似的可能性。
虽然导出我可能会从html输出中创建自己。
另一个不错的功能是来自word的粘贴,删除了你通常最终得到的所有额外标签,但同样很高兴没有必要。
答案 0 :(得分:27)
您可以在设计模式下使用WebBrowser控件,并在视图模式下设置第二个WebBrowser
控件。
为了将WebBrowser
控件置于设计模式,您可以使用以下代码。
此代码是我们软件产品的WYSIWYG编辑器的超级精简版。
只需创建一个新表单,在其上放一个WebBrowser
控件,然后将其放在Form.Load中:
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
答案 1 :(得分:9)
//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;
答案 2 :(得分:6)
我正在考虑使用Lutz Roeder的作家(Reflector成名)。一个完全用C#编写的基本Html编辑器,提供源代码。在http://www.lutzroeder.com/dotnet/
查找答案 3 :(得分:2)
SpiceLogic .NET WinForms HTML编辑器控件,不是免费的,但它涵盖了您正在寻找的任何内容。特别是,从MS Word粘贴功能非常有效。单击该MS Word粘贴按钮会将剪贴板中的内容粘贴到编辑器中,并清理ms字特定标记并生成干净的XHTML。如果MS Word包含一些图像,则此编辑器也将检测这些图像,输出XHTML将包含具有这些图像的正确路径的图像标记。
https://www.spicelogic.com/Products/NET-WinForms-HTML-Editor-Control-8
答案 4 :(得分:0)
请参阅http://www.maconstateit.net/tutorials/JSDHTML/JSDHTML12/jsdhtml12-02.htm,了解在IE中使用编辑surport的示例HTML edtior。
http://www.mozilla.org/editor/midasdemo/和http://starkravingfinkle.org/blog/wp-content/uploads/2007/07/contenteditable.htm也适用于IE,并举例说明如何设置工具栏,字体,粗体,斜体等
当我尝试这样做时,请查看这些问题。
我还有很多其他问题,包括必须在jscript中编写resize逻辑以使HTML编辑器与WinForm表单一起调整大小并且必须将默认的form / coontrol颜色传递到HTML编辑器中以便它看起来像写然后用户在Windows上更改了配色方案。
因此,如果我需要再次执行此操作,我会使用第三方HTML编辑器(免费或付费)
答案 5 :(得分:0)
如果只需要简单地格式化一些文本,就可以在codeproject.com上找到许多开源项目。
我认为Netrix的功能是所有这些免费控件中最全面的。链接如下: https://github.com/joergkrause/netrix
当然,有一些付费的商业控件,它们通常提供更友好的界面和更丰富的功能,例如BaiqiSoft.HtmlEditor。 它允许我合并/取消合并单元格,调整插入表的行高和列宽。