1. 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
2. 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)
3. 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
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