Aggiungi una nuova classe al tuo progetto e incolla il codice mostrato di seguito. Compilare. Rilascia il nuovo controllo dalla parte superiore della cassetta degli strumenti sul modulo. Seleziona la proprietà RichText e fai clic sul pulsante con i punti. Ciò avvierà Wordpad. Modifica il testo, digita Ctrl + S e chiudi Wordpad. Attenzione che il designer di Visual Studio non è funzionale mentre Wordpad è aperto.
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
fonte
2010-06-06 19:56:23
Esempio molto interessante di come estendere il modello di progettazione/componente Forms. –
Bravo! Mi hai salvato la giornata ... È un peccato che Visual Studio non offra tale funzionalità in fase di progettazione ... +1 per te –
Ottima soluzione, davvero eccellente. –