Agregue una nueva clase a su proyecto y pegue el código que se muestra a continuación. Compilar. Coloque el nuevo control desde la parte superior de la caja de herramientas en su formulario. Seleccione la propiedad RichText y haga clic en el botón con los puntos. Eso iniciará Wordpad. Edite su texto, escriba Ctrl + S y cierre Wordpad. Tenga en cuenta que el diseñador de Visual Studio no funciona cuando Wordpad está abierto.
Imports System.ComponentModel
Imports System.Drawing.Design
Imports System.IO
Imports System.Diagnostics
Public Class MyRtb
Inherits RichTextBox
<Editor(GetType(RtfEditor), GetType(UITypeEditor))> _
Public Property RichText() As String
Get
Return MyBase.Rtf
End Get
Set(ByVal value As String)
MyBase.Rtf = value
End Set
End Property
End Class
Friend Class RtfEditor
Inherits UITypeEditor
Public Overrides Function GetEditStyle(ByVal context As ITypeDescriptorContext) As UITypeEditorEditStyle
Return UITypeEditorEditStyle.Modal
End Function
Public Overrides Function EditValue(ByVal context As ITypeDescriptorContext, ByVal provider As IServiceProvider, ByVal value As Object) As Object
Dim fname As String = Path.Combine(Path.GetTempPath, "text.rtf")
File.WriteAllText(fname, CStr(value))
Process.Start("wordpad.exe", fname).WaitForExit()
value = File.ReadAllText(fname)
File.Delete(fname)
Return value
End Function
End Class
Muy buen ejemplo de cómo ampliar el modelo de diseñador/componente de formularios. –
¡Bravo! Me salvaste el día ... Es una lástima que Visual Studio no ofrezca esa funcionalidad en designtime ... +1 para ti –
Excelente solución, realmente excelente. –