PROGRAMA PARA UTILIZAR EL TEXTBOX Y EL RICHTEXTBOX
Creamos una aplicación a partir de un formulario, que le llamamos Textbox_richtextbox
Introducimos seis botones distribuidos como en la imagen , introducimos dos labels con el texto TEXTBOX y RICHTEXTBOX para diferenciar el cuadro de texto superior del inferior.
Antes que nada tenemos que introducir dos componentes necesarios para nuestra aplicación: el “CommonDialog” y el “RichTextBox”, el primero se incorpora pulsando el botón derecho sobre la barra de herramientas-componentes y añadiendo el Microsoft Common Dialog Control, el segundo añadimos el Microsoft RichTextBox Control.
Introducimos un menú con la siguiente estructura con el
editor de menús
Posteriormente introducimos el código de la aplicación
'la variable origen nos dará el lugar desde donde
queremos copiar o cortar
'si es true será del textbox si es false del richtextbox
Dim origen As Boolean
'Botones del textbox
'Cambiamos el color de Fondo
Private Sub Command1_Click()
CommonDialog1.ShowColor
Text1.BackColor =
CommonDialog1.Color
End Sub
'Cambiamos el color de fuente
Private Sub Command2_Click()
CommonDialog1.ShowColor
Text1.ForeColor =
CommonDialog1.Color
End Sub
'Cambiamos el timpo de
fuente ("Si estuviera instalada")
Private Sub Command3_Click()
CommonDialog1.ShowFont
Text1.Font = CommonDialog1.FontName
End Sub
'Botones del Richtextbox
'Cambiamos el color de Fondo
Private Sub Command4_Click()
CommonDialog1.ShowColor
RichTextBox1.BackColor =
CommonDialog1.Color
End Sub
'Cambiamos el color de fuente
Private Sub Command5_Click()
CommonDialog1.ShowColor
RichTextBox1.SelColor =
CommonDialog1.Color
End Sub
'Cambiamos el tipo de fuente si estuviera instalada
Private Sub Command6_Click()
CommonDialog1.ShowFont
RichTextBox1.Font =
CommonDialog1.FontName
End Sub
'inicializamos la variable origen
Private Sub Form_Load()
origen = True
mnuPegar.Enabled = False
End Sub
'Elementos del menú
'cursiva del richtextbox
Private Sub mnu_cursiva_rtxt_Click()
RichTextBox1.SelItalic = Not RichTextBox1.SelItalic
mnu_cursiva_rtxt.Checked = RichTextBox1.SelItalic
End Sub
'cursiva del textbox
Private Sub mnu_cursiva_Txt_Click()
Text1.FontItalic = Not Text1.FontItalic
mnu_cursiva_Txt.Checked = Text1.FontItalic
End Sub
'negrita del richtextbox
Private Sub mnu_negrita_rtxt_Click()
RichTextBox1.SelBold = Not RichTextBox1.SelBold
mnu_negrita_rtxt.Checked = RichTextBox1.SelBold
End Sub
'negrita del textbox
Private Sub mnu_negrita_txt_Click()
Text1.FontBold = Not
Text1.FontBold
mnu_negrita_txt.Checked = Text1.FontBold
End Sub
'subrayado
Private Sub mnu_subrayado_rtxt_Click()
RichTextBox1.SelUnderline =
Not RichTextBox1.SelUnderline
mnu_subrayado_rtxt.Checked = RichTextBox1.SelUnderline
End Sub
'subrayado
Private Sub mnu_subrayado_txt_Click()
Text1.FontUnderline = Not
Text1.FontUnderline
mnu_subrayado_txt.Checked = Text1.FontUnderline
End Sub
'copiamos según sea el origen
Private Sub mnucopiar_Click()
If origen Then
If Text1.SelLength > 0 Then
Clipboard.Clear
Clipboard.SetText
Text1.SelText, vbCFText
mnuPegar.Enabled
= True
End If
Else
On Error Resume Next
Clipboard.SetText
(RichTextBox1.SelText)
mnuPegar.Enabled
= True
End If
End Sub
'cortamos según sea el origen
Private Sub mnuCortar_Click()
If origen Then
If Text1.SelLength > 0 Then
Clipboard.Clear
Clipboard.SetText
Text1.SelText, vbCFText
Text1.SelText = ""
mnuPegar.Enabled
= True
End If
Else
On Error Resume Next
Clipboard.SetText
(RichTextBox1.SelText)
RichTextBox1.SelText = ""
mnuPegar.Enabled
= True
End If
End Sub
'pegamos
Private Sub mnuPegar_Click()
If origen Then
On Error Resume Next
Text1.SelText = Clipboard.GetText
Else
On Error Resume Next
RichTextBox1.SelRTF = Clipboard.GetText
End If
End Sub
'abrimos un fichero de richtextbox
Private Sub mnuRichTextBox_Abrir_Click()
CommonDialog1.ShowOpen
RichTextBox1.LoadFile
(CommonDialog1.FileName)
End Sub
'guardamos el contenido del richtextbox
Private Sub mnuRichTextBox_Guardar_Click()
CommonDialog1.ShowSave
RichTextBox1.SaveFile
(CommonDialog1.FileName)
End Sub
'abrimos un archivo en el cuadro de texto textbox
Private Sub mnuTextBox_Abrir_Click()
Dim c
c = ""
CommonDialog1.Filter =
"Archivos de texto (*.*) | *.txt | o RTF (*.rtf) |*.rtf"
CommonDialog1.ShowOpen
If CommonDialog1.FileName
<> "" Then
Open CommonDialog1.FileName For Input As #1
Do While Not EOF(1)
c = c + Input(1,
#1)
Close #1
Text1.Text = Left(c, Len(c) -
2)
End If
CommonDialog1.FileName =
""
End Sub
'guardar el contenido del textbox
Private Sub mnuTextBox_Guardar_Click()
CommonDialog1.Filter =
"Archivos de texto (*.*) | *.txt | o RTF (*.rtf) |*.rtf"
CommonDialog1.ShowSave
If CommonDialog1.FileName
<> "" Then
Open CommonDialog1.FileName For Output As #2
Print #2, Text1.Text
Close #2
End If
End Sub
'cuando clickamos en el richtextbox actualizamos el menú
Private Sub RichTextBox1_Click()
origen = False
If (RichTextBox1.SelBold
<> Null And RichTextBox1.SelItalic <> nul And RichTextBox1.SelUnderline <> Null) Then
mnu_negrita_txt.Checked = Text1.FontBold
mnu_cursiva_Txt.Checked = Text1.FontItalic
mnu_subrayado_txt.Checked = Text1.FontUnderline
mnu_negrita_rtxt.Checked = RichTextBox1.SelBold
mnu_cursiva_rtxt.Checked = RichTextBox1.SelItalic
mnu_subrayado_rtxt.Checked = RichTextBox1.SelUnderline
End If
End Sub
'cuando clickamos en el textbox actualizamos el menú
Private Sub Text1_Click()
origen = True
If (RichTextBox1.SelBold
<> Null And RichTextBox1.SelItalic <> nul And RichTextBox1.SelUnderline <> Null) Then
mnu_negrita_txt.Checked = Text1.FontBold
mnu_cursiva_Txt.Checked = Text1.FontItalic
mnu_subrayado_txt.Checked = Text1.FontUnderline
mnu_negrita_rtxt.Checked = RichTextBox1.SelBold
mnu_cursiva_rtxt.Checked = RichTextBox1.SelItalic
mnu_subrayado_rtxt.Checked = RichTextBox1.SelUnderline
End If
End Sub