Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

winforms html editor [closed]

Anyone know of a good free winforms html editor for .NET. Ideally I would like html and preview modes along with the possibility of exporting to a pdf, word doc or similar.

Although the export I could probably create myself from the html output.

Another nice feature would be a paste from word that removes all the extra tags you usually end up with but again it's a nice to have not a required.

like image 215
PeteT Avatar asked Oct 17 '08 23:10

PeteT


2 Answers

You can use the WebBrowser control in design mode with a second WebBrowser control set in view mode.

In order to put the WebBrowser control in design mode, you can use the following code.

This code is a super stripped down version of a WYSIWYG editor for one of our software products.

Simply create a new Form, drop a WebBrowser control on it, and put this in the 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 
like image 132
Tom Anderson Avatar answered Sep 21 '22 13:09

Tom Anderson


//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; 
like image 45
CDS Avatar answered Sep 20 '22 13:09

CDS