winform visual tutorial studio form ejemplos bunifu application c# .net vb.net winforms controls

visual - winform c#



Editor de correo electrónico HTML en una aplicación de Windows Forms (9)

He estado usando este , que es un poco más bajo que WebBrowser, pero todavía usa MSHTML, que escupió un feo HTML. Para mis propósitos, estoy haciendo un editor de pestañas múltiples con modo de edición WYSIWYG y HTML (usando ICSharp.TextEditor ) con una clase Buffer para actualizar cada vez que cambian las pestañas. Como parte de esa clase de Buffer, actualmente ejecuto el HTML a través de HTML Tidy y algunos bits scrub-n-replace para obtener XHTML válido.

Solo ofrezco eso como una solución porque tampoco pude encontrar uno que no se derivó de MSHTML de alguna manera y finalmente seguí adelante con la solución anterior para seguir avanzando.

Estamos buscando un control de editor WYSIWYG para nuestra aplicación de Windows (vb.net o c #) para que los usuarios puedan diseñar correos electrónicos HTML (para enviar utilizando los objetos SMTP en el marco de dot net) antes de enviarlos.

Actualmente, todos los editores disponibles que podemos encontrar tienen uno de los siguientes problemas:

a) Confían en mshtml.dll o en el control del navegador web que, como hemos demostrado, no es confiable ya que el código html y el editor no están sincronizados en Windows 2000 (IE6)

b) Están basados ​​en la web, no un control de forma de ventanas

c) Colocan estilos en el encabezado del documento (ver nota a continuación).

Desafortunadamente, como este artículo de correo electrónico HTML describe la única manera segura de hacer que los correos electrónicos HTML funcionen con estilos es usarlos en línea, lo que ahora parece no ser compatible en muchos editores.

¿Alguien tiene alguna experiencia en esto o podría sugerir una solución?


También necesitaba un editor WYSIWYG para un proyecto de Windows Forms en el que estaba trabajando. Escribí sobre los artículos que encontré aquí . Eventualmente, terminé usando algo que encontré en CodeProject: un editor de texto basado en Windows Forms con salida HTML . Esto viola (a) arriba en que usa el control WebBrowser. Sin embargo, no pude encontrar nada bueno que no hiciera esto (si no usas WebBrowser de alguna manera, entonces básicamente tienes que enderezar tu propio analizador y procesador de HTML para manejar el "What-You- Ver "parte de WYSIWYG". Lo bueno de este control es que la fuente es fácilmente personalizable, por lo que puede quitar y agregar opciones de formato a medida que lo necesite (y si desea que todos los estilos estén en línea, puede hacerlo también).


El código fuente de nikhil proporciona una solución decente. Descargué este pequeño componente en algún momento, creo que usa MSHTML. Pero no estoy seguro de eso. La fuente puede descargarse aquí . Avíseme si ayuda :)


No mencionó si está dispuesto a pagar por un control, pero si lo es, recomiendo Actipro SyntaxEditor .


En lugar de buscar un editor de HTML, considere la opción de un editor de RichText (que puede ser mucho más fácil de crear) y luego convierta el texto final en un documento HTML.

Siempre que deba utilizar un conjunto mínimo de características (negrita / cursiva, etc.), tanto la creación del editor de RT como la conversión del documento final en formato HTML no deberían ser difíciles.

Si, por otro lado, necesita usar más funciones (como tablas), debe estudiar el formato de texto enriquecido e implementar las funciones que necesita.

Recursos adicionales:


Existe este HTML Edit Control para .NET (divulgación: lo escribí).

No depende de ningún navegador web; es un control de formulario de Windows; y, puede hacer frente al style= atributo.

No es exactamente lo que quiere: como está diseñado para WYSIWYM, la barra de herramientas no tiene botones para editar estilos en línea (aunque su motor de representación renderizará estilos en línea), la barra de herramientas le permite especificar solo elementos de nivel de bloque como <p> y <h1> y <ul> y <table> ; pero si quisiera, podría preguntarme acerca de agregar funcionalidad (como se describe en la sección Desarrollo de nueva funcionalidad ).



Es mi primera contribución.

Puedes usar un RichTextBox. El formato RTF es más que suficiente para crear correos electrónicos.

Recientemente escribí sobre cómo cargar y guardar en el disco duro los contenidos de un RichTextBox.

Permite copiar y pegar. Es fácil de usar y con pocos botones puedes crear tus propios comandos.

With RichTextBox1     .SelStart = 0     .SelLength = Len (. Text)     .SelColor = vbRed End With

Ejemplo para cargar y guardar.

http://danielcatala.wordpress.com/2014/01/30/como-cargar-y-guardar-archivos-richtext-con-wpf/

Private Sub btnCarga(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click Dim archivoCarga As New StreamReader("prueba.rtf") With RichTextBox1 .Selection.Select(.Document.ContentStart, RichTextBox1.Document.ContentEnd) .Selection.Load(archivoCarga.BaseStream, System.Windows.DataFormats.Rtf) End With End Sub Private Sub btnGuarda(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button2.Click Dim archivoSalida As New StreamWriter("prueba.rtf") Dim bs As Stream = archivoSalida.BaseStream With RichTextBox1 .Selection.Select(RichTextBox1.Document.ContentStart, RichTextBox1.Document.ContentEnd) .Selection.Save(bs, System.Windows.DataFormats.Rtf) End With End Sub