2010-06-06 31 views

Répondre

2

Vous pouvez certainement créer un document RTF dans l'éditeur RTF (par exemple WordPad), enregistrez le fichier, ouvrez-le en tant que fichier texte/texte et copiez le document RTF dans la propriété RtfText de votre RichTextBox au moment du design.

Mais je déconseille. De cette façon, vous avez une grande quantité de données dans votre code et cela ne sert à rien. Utilisez une ressource, c'est ce pour quoi ils sont là, après tout. Vous pouvez lier des ressources individuelles pour contrôler les propriétés au moment du design.

7

Ajoutez une nouvelle classe à votre projet et collez le code ci-dessous. Compiler. Déposez le nouveau contrôle du haut de la boîte à outils sur votre formulaire. Sélectionnez la propriété RichText et cliquez sur le bouton avec les points. Cela va démarrer Wordpad. Modifiez votre texte, tapez Ctrl + S et fermez Wordpad. Attention, le concepteur Visual Studio n'est pas fonctionnel alors que Wordpad est ouvert.

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 
+0

Exemple très cool d'extension du modèle de concepteur/composant Forms. –

+0

Bravo! Vous avez sauvé ma journée ... Dommage que Visual Studio n'offre pas cette fonctionnalité au moment du design ... +1 pour vous –

+0

Excellente solution, vraiment excellente. –

1

J'ai trouvé ce lien sur CodeProject très utile:

http://www.codeproject.com/KB/miscctrl/richtextboxextended.aspx

Il est une version de contrôle rtf édition entièrement de travail autour du contrôle standard .net RichtTextBox avec un bon code structuré. Il montre comment utiliser presque toutes les fonctionnalités disponibles du contrôle.

Cependant, il est écrit en C# et non en vb.net mais vous devriez jeter un oeil.

0

Bravo - simple et efficace! Voici également une petite correction, car l'argument est une chaîne longue avec des espaces, donc la ligne suivante contient des guillemets obligatoires:

Process.Start("wordpad.exe", """" & fname & """").WaitForExit()