Editor de texto en Visual basic con un
RichTextBox

Este es un código fuente de un editor de texto muy simple tipo
Bloc de notas.




El ejemplo es de lo mas fácil, ya que utiliza el control RichTextBox , y en realidad este
control hace casi todo por si solo, por ejemplo para leer un archivo y cargarlo en el
RichTextBox se utiliza el método LoadFile, y para Guardar en disco el Método SaveFile (
En el código está mas o menos comentado los parámetros de dichas funciones y métodos).

El ejemplo tiene opciones para Crear , Abrir y Guardar los archivos en varias extenciones
( las soportadas por el RichTextBox).

Los comandos clásicos de Cortar , Copiar, Pegar texto etc... También para Colorear la
fuente seleccionada en el control, Imprimir el documento, Aplicar algunos Atributos al
texto ( Negrita, subrayado, Cursiva), en fin, se le pueden agregar infinidad de opciones
extras.

Nota: Lo ideal es crearle un menú clásico " Menú Archivo ", " Menú Edición " etc..., y los
botones hacerlos con un Toolbar por ejemplo, ya sea utilizando el control toolBar del visual
basic o fabricandose una barra propia, ya que el ejemplo solo utiliza botones
CommandButton para las opciones, para que sea un poco mas entendible. Y otra cosa
también usar un formulario MDI para tener multiples documentos abiertos en la misma
aplicación

A continuación se describen los pasos para crear el ejemplo:




Agregar los siguiente controles en un formulario:

   •   Un control Commondialog llamado Commondialog
   •   Un control RichTextBox llamado RichTextBox
   •   Un CommandButton llamado cmdOpcion, y en la propiedad index colocarle el valor 0, para
       formar un array y poder crear los demás en tiempo de ejecución
Nota: Colocar los controles en cualquier posición de la pantalla y no colocarles nada en el
Caption ni el tamaño ni nada, ya que se hace por código, es decir se les asigna el caption y
se redimensionan en tiempo de ejecución .

Pegar el código en el formulario

   1. Option Explicit
   2.
   3.
   4. Const FILTRO_EXTENSIONES As String = "Archivos de texto (txt)|*.txt|" & _
   5.                         "Rich Text Formato (RTF)|*.rtf|" & _
   6.                         "Archivos INI|*.ini|Archivos HTML|" & _
   7.                         "*.htm|Todos los archivos|*.*"
   8.
   9. Private Sub Iniciar()
   10. Dim i As Integer
   11.
   12. 'Acomodamos el primer botón en la esquina superior izquierda
   13. cmdOpcion(0).Move 50, 10, 1000, 250
   14.
   15. For i = 1 To 10
   16.      Load cmdOpcion(i)
   17.      cmdOpcion(i).Visible = True
   18. Next
   19.
   20. 'Caption de los CommandButton para las opciones
   21. With cmdOpcion
   22.      .Item(0).Caption = "Nuevo"
   23.      .Item(1).Caption = "Abrir"
   24.      .Item(2).Caption = "Guardar"
   25.      .Item(3).Caption = "Cortar"
   26.      .Item(4).Caption = "Copiar"
   27.      .Item(5).Caption = "Pegar"
   28.      .Item(6).Caption = "Bold"
   29.      .Item(7).Caption = "Italic"
   30.      .Item(8).Caption = "Underlined"
   31.      .Item(9).Caption = "Imprimir"
   32.      .Item(10).Caption = "Color"
   33. End With
   34.
   35. ' Va posicionando un botón al lado del otro
   36. For i = 1 To cmdOpcion.Count - 1
   37.      cmdOpcion(i).Move cmdOpcion(i - 1).Width * i, 10, 1000, 250
   38. Next
   39. End Sub
   40.
   41. Private Sub cmdOpcion_Click(Index As Integer)
42. On Error GoTo men
43.
44. Dim ret As VbMsgBoxResult, cnt As Long
45.
46. Select Case Index
47. ' crear un Nuevo archivo
48. '''''''''''''''''''''''''
49. Case 0
50.           ret = MsgBox("Guardar el archivo?", vbQuestion + vbYesNo, App.Title)
51.                  If ret = vbYes Then
52.                       RichTextBox.Text = ""
53.                       'guardamos el archivo
54.                       GuardarArchivo
55.                   End If
56.           'Limpiamos el RichTextBox
57.           RichTextBox.Text = ""
58.
59. 'Para Abrir un Archivo con el CommonDialog
60. '''''''''''''''''''''''''''''''''''''''''''''
61. Case 1
62.           Call Abrir_Archivo
63. 'Para Guardar un Archivo
64. '''''''''''''''''''''''''''
65. Case 2
66.           Call GuardarArchivo
67. 'Opción Para cortar el Texto del RichTexBox Seleccionado
68. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
69. Case 3
70.           'Pegamos en el portapapeles de windows con ClipBoard
71.           Clipboard.SetText RichTextBox.SelText
72.           'Eliminamos lo seleccionado en el RichTextBox
73.           RichTextBox.SelText = ""
74. 'Copiar al Clipboard
75. '''''''''''''''''''''''''
76. Case 4
77.           Clipboard.SetText RichTextBox.SelText
78. 'Pegar el contenido del portapapeles en el RichTextBox
79. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
80. Case 5
81.           RichTextBox.SelText = Clipboard.GetText
82. 'Texto en negrita con la propiedad SelBold
83. ''''''''''''''''''''''''''''''''''''''''''''
84. Case 6
85.           RichTextBox.SelBold = Not RichTextBox.SelBold
86. ' Aplica Italic al texto seleccionado
87. ''''''''''''''''''''''''''''''''''''''''
88. Case 7
89.           RichTextBox.SelItalic = Not RichTextBox.SelItalic
90. ' Aplica Underline al texto seleccionado
91. '''''''''''''''''''''''''''''''''''''''''
92. Case 8
93.           ' Texto en cursiva
94.           RichTextBox.SelUnderline = Not RichTextBox.SelUnderline
95. ' Imprimir el contenido del RichTextBox
96. '''''''''''''''''''''''''''''''''''''''''
97. Case 9
98.           'Titulo del diálogo Imprimir
99.           CommonDialog.DialogTitle = "Seleccionar impresora"
100.             ' Abre el commondialog para seleccionar impresora
101.           CommonDialog.ShowPrinter
102.           ' imprimimos el archivo
103.           RichTextBox.SelPrint CommonDialog.PrinterDefault, rtfText
104.
105.'Color del texto
106.''''''''''''''''''''''
107. Case 10
108. On Error Resume Next
109. CommonDialog.DialogTitle = "Seleccionar color para el texto"
110.           'Abrimos el commondialog
111. CommonDialog.ShowColor
112.           'Establecemos el color en el Texto seleccionado del RichTextBox
113. RichTextBox.SelColor = CommonDialog.Color
114.End Select
115.
116.Exit Sub
117.men:
118. If Err.Number = 424 Then Resume Next
119.End Sub
120.
121.'* Subrutia para guardar el archivo en disco
122.'''''''''''''''''''''''''''''''''''''''''''''''''''''''
123.Private Sub GuardarArchivo()
124.
125. 'Titulo del cuadro de diálogo y otras opciones
126. With CommonDialog
127. .DialogTitle = "Guardar Archivo"
128. .Filter = FILTRO_EXTENSIONES
129.
130. 'Abre el Common Dialog guardar
131. .ShowSave
132. If .FileName = "" Then Exit Sub
133.             If .FilterIndex = 2 Then
134.                  RichTextBox.SaveFile .FileName
135.             Else
136.                 RichTextBox.SaveFile .FileName, rtfText
137. End If
138. End With
139.End Sub
140.
141.'* Sub para Abrir un archivo del disco
142.'''''''''''''''''''''''''''''''''''''''''''''''''''''
143.Private Sub Abrir_Archivo()
144. Dim ret As VbMsgBoxResult
145.
146. If RichTextBox <> "" Then
147. ret = MsgBox(" Guardar el archivo ?", vbQuestion + vbYesNo, App.Title)
148. 'Si elegimos si, entonces guardamos el archivo
149. If ret = vbYes Then GuardarArchivo
150. End If
151.
152. With CommonDialog
153. .DialogTitle = "Abrir Archivo"
154. ' Extenciones del Commondialog
155. .Filter = FILTRO_EXTENSIONES
156. ' Abrimos el Commondialog
157. .ShowOpen
158. If .FileName = "" Then Exit Sub 'Si es un vbNullstring salimos
159. ' Cargamos el fichero en el RichTextBox con el método LoadFile
160. RichTextBox.LoadFile .FileName
161.
162. End With
163.End Sub
164.
165.
166.Private Sub Form_Load()
167.Call Iniciar
168.End Sub
169.
170.Private Sub Form_Resize()
171. 'Redimensionamos el control RichTextBox al tamaño _
172. del formulario usando el método Move del mismo.
173. RichTextBox.Move 0, cmdOpcion(0).Top + cmdOpcion(0).Height, _
174.                             ScaleWidth, ScaleHeight
175.
176.End Sub

Editor

  • 1.
    Editor de textoen Visual basic con un RichTextBox Este es un código fuente de un editor de texto muy simple tipo Bloc de notas. El ejemplo es de lo mas fácil, ya que utiliza el control RichTextBox , y en realidad este control hace casi todo por si solo, por ejemplo para leer un archivo y cargarlo en el RichTextBox se utiliza el método LoadFile, y para Guardar en disco el Método SaveFile ( En el código está mas o menos comentado los parámetros de dichas funciones y métodos). El ejemplo tiene opciones para Crear , Abrir y Guardar los archivos en varias extenciones ( las soportadas por el RichTextBox). Los comandos clásicos de Cortar , Copiar, Pegar texto etc... También para Colorear la fuente seleccionada en el control, Imprimir el documento, Aplicar algunos Atributos al texto ( Negrita, subrayado, Cursiva), en fin, se le pueden agregar infinidad de opciones extras. Nota: Lo ideal es crearle un menú clásico " Menú Archivo ", " Menú Edición " etc..., y los botones hacerlos con un Toolbar por ejemplo, ya sea utilizando el control toolBar del visual basic o fabricandose una barra propia, ya que el ejemplo solo utiliza botones CommandButton para las opciones, para que sea un poco mas entendible. Y otra cosa también usar un formulario MDI para tener multiples documentos abiertos en la misma aplicación A continuación se describen los pasos para crear el ejemplo: Agregar los siguiente controles en un formulario: • Un control Commondialog llamado Commondialog • Un control RichTextBox llamado RichTextBox • Un CommandButton llamado cmdOpcion, y en la propiedad index colocarle el valor 0, para formar un array y poder crear los demás en tiempo de ejecución
  • 2.
    Nota: Colocar loscontroles en cualquier posición de la pantalla y no colocarles nada en el Caption ni el tamaño ni nada, ya que se hace por código, es decir se les asigna el caption y se redimensionan en tiempo de ejecución . Pegar el código en el formulario 1. Option Explicit 2. 3. 4. Const FILTRO_EXTENSIONES As String = "Archivos de texto (txt)|*.txt|" & _ 5. "Rich Text Formato (RTF)|*.rtf|" & _ 6. "Archivos INI|*.ini|Archivos HTML|" & _ 7. "*.htm|Todos los archivos|*.*" 8. 9. Private Sub Iniciar() 10. Dim i As Integer 11. 12. 'Acomodamos el primer botón en la esquina superior izquierda 13. cmdOpcion(0).Move 50, 10, 1000, 250 14. 15. For i = 1 To 10 16. Load cmdOpcion(i) 17. cmdOpcion(i).Visible = True 18. Next 19. 20. 'Caption de los CommandButton para las opciones 21. With cmdOpcion 22. .Item(0).Caption = "Nuevo" 23. .Item(1).Caption = "Abrir" 24. .Item(2).Caption = "Guardar" 25. .Item(3).Caption = "Cortar" 26. .Item(4).Caption = "Copiar" 27. .Item(5).Caption = "Pegar" 28. .Item(6).Caption = "Bold" 29. .Item(7).Caption = "Italic" 30. .Item(8).Caption = "Underlined" 31. .Item(9).Caption = "Imprimir" 32. .Item(10).Caption = "Color" 33. End With 34. 35. ' Va posicionando un botón al lado del otro 36. For i = 1 To cmdOpcion.Count - 1 37. cmdOpcion(i).Move cmdOpcion(i - 1).Width * i, 10, 1000, 250 38. Next 39. End Sub 40. 41. Private Sub cmdOpcion_Click(Index As Integer)
  • 3.
    42. On ErrorGoTo men 43. 44. Dim ret As VbMsgBoxResult, cnt As Long 45. 46. Select Case Index 47. ' crear un Nuevo archivo 48. ''''''''''''''''''''''''' 49. Case 0 50. ret = MsgBox("Guardar el archivo?", vbQuestion + vbYesNo, App.Title) 51. If ret = vbYes Then 52. RichTextBox.Text = "" 53. 'guardamos el archivo 54. GuardarArchivo 55. End If 56. 'Limpiamos el RichTextBox 57. RichTextBox.Text = "" 58. 59. 'Para Abrir un Archivo con el CommonDialog 60. ''''''''''''''''''''''''''''''''''''''''''''' 61. Case 1 62. Call Abrir_Archivo 63. 'Para Guardar un Archivo 64. ''''''''''''''''''''''''''' 65. Case 2 66. Call GuardarArchivo 67. 'Opción Para cortar el Texto del RichTexBox Seleccionado 68. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 69. Case 3 70. 'Pegamos en el portapapeles de windows con ClipBoard 71. Clipboard.SetText RichTextBox.SelText 72. 'Eliminamos lo seleccionado en el RichTextBox 73. RichTextBox.SelText = "" 74. 'Copiar al Clipboard 75. ''''''''''''''''''''''''' 76. Case 4 77. Clipboard.SetText RichTextBox.SelText 78. 'Pegar el contenido del portapapeles en el RichTextBox 79. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 80. Case 5 81. RichTextBox.SelText = Clipboard.GetText 82. 'Texto en negrita con la propiedad SelBold 83. '''''''''''''''''''''''''''''''''''''''''''' 84. Case 6 85. RichTextBox.SelBold = Not RichTextBox.SelBold 86. ' Aplica Italic al texto seleccionado 87. '''''''''''''''''''''''''''''''''''''''' 88. Case 7
  • 4.
    89. RichTextBox.SelItalic = Not RichTextBox.SelItalic 90. ' Aplica Underline al texto seleccionado 91. ''''''''''''''''''''''''''''''''''''''''' 92. Case 8 93. ' Texto en cursiva 94. RichTextBox.SelUnderline = Not RichTextBox.SelUnderline 95. ' Imprimir el contenido del RichTextBox 96. ''''''''''''''''''''''''''''''''''''''''' 97. Case 9 98. 'Titulo del diálogo Imprimir 99. CommonDialog.DialogTitle = "Seleccionar impresora" 100. ' Abre el commondialog para seleccionar impresora 101. CommonDialog.ShowPrinter 102. ' imprimimos el archivo 103. RichTextBox.SelPrint CommonDialog.PrinterDefault, rtfText 104. 105.'Color del texto 106.'''''''''''''''''''''' 107. Case 10 108. On Error Resume Next 109. CommonDialog.DialogTitle = "Seleccionar color para el texto" 110. 'Abrimos el commondialog 111. CommonDialog.ShowColor 112. 'Establecemos el color en el Texto seleccionado del RichTextBox 113. RichTextBox.SelColor = CommonDialog.Color 114.End Select 115. 116.Exit Sub 117.men: 118. If Err.Number = 424 Then Resume Next 119.End Sub 120. 121.'* Subrutia para guardar el archivo en disco 122.''''''''''''''''''''''''''''''''''''''''''''''''''''''' 123.Private Sub GuardarArchivo() 124. 125. 'Titulo del cuadro de diálogo y otras opciones 126. With CommonDialog 127. .DialogTitle = "Guardar Archivo" 128. .Filter = FILTRO_EXTENSIONES 129. 130. 'Abre el Common Dialog guardar 131. .ShowSave 132. If .FileName = "" Then Exit Sub 133. If .FilterIndex = 2 Then 134. RichTextBox.SaveFile .FileName 135. Else
  • 5.
    136. RichTextBox.SaveFile .FileName, rtfText 137. End If 138. End With 139.End Sub 140. 141.'* Sub para Abrir un archivo del disco 142.''''''''''''''''''''''''''''''''''''''''''''''''''''' 143.Private Sub Abrir_Archivo() 144. Dim ret As VbMsgBoxResult 145. 146. If RichTextBox <> "" Then 147. ret = MsgBox(" Guardar el archivo ?", vbQuestion + vbYesNo, App.Title) 148. 'Si elegimos si, entonces guardamos el archivo 149. If ret = vbYes Then GuardarArchivo 150. End If 151. 152. With CommonDialog 153. .DialogTitle = "Abrir Archivo" 154. ' Extenciones del Commondialog 155. .Filter = FILTRO_EXTENSIONES 156. ' Abrimos el Commondialog 157. .ShowOpen 158. If .FileName = "" Then Exit Sub 'Si es un vbNullstring salimos 159. ' Cargamos el fichero en el RichTextBox con el método LoadFile 160. RichTextBox.LoadFile .FileName 161. 162. End With 163.End Sub 164. 165. 166.Private Sub Form_Load() 167.Call Iniciar 168.End Sub 169. 170.Private Sub Form_Resize() 171. 'Redimensionamos el control RichTextBox al tamaño _ 172. del formulario usando el método Move del mismo. 173. RichTextBox.Move 0, cmdOpcion(0).Top + cmdOpcion(0).Height, _ 174. ScaleWidth, ScaleHeight 175. 176.End Sub