Ferramentas de Utilizador

Ferramentas de Site


dev_net:vb.net:richtextbox_ii

Richtextbox controlos II

Em continuação com este artigo, venho ilustrar um pouco mais os controlos da Richtextbox.

Detectar URLs e ao clicar nos mesmos direccionar para o browser:

  1. Nas propriedades da Richtextbox, define a propriedade DetectURLs como True.
  2. De seguida basta adicionar o seguinte evento:
    Private Sub RichTextBox1_LinkClicked(ByVal sender As Object, ByVal e As System.Windows.Forms.LinkClickedEventArgs) Handles RichTextBox1.LinkClicked
        Process.Start(e.LinkText)
    End Sub

Inserir uma imagem:

 Private Sub InserirImagem(ByRef RichText As RichTextBox)
        Dim Escolher As New OpenFileDialog
        With Escolher
            .Filter = "Ficheiros Imagem (*.jpg,*.jpeg, *.gif, *.bmp)|*.jpg;*.jpeg;*.gif;*.bmp"
            .FileName = ""
            .Multiselect = False
            If .ShowDialog = Windows.Forms.DialogResult.OK Then
 
                ' Devemos atribuir o elemento como uma imagem
                Dim img As New Bitmap(Escolher.FileName)
                ' Pois só assim conseguiremos definir o clipboard.
                Clipboard.SetImage(img)
                RichText.Paste()
 
            End If
        End With
    End Sub
Novamente, para chamar o Sub basta:
InserirImagem(RichTextbox1)
RichTextBox1.Undo() ' Voltar atrás
RichTextBox1.Redo() ' Voltar a fazer

Relativamente ao zoom que podemos atribuir, há que ter em atenção a diminuição de zoom, pois só existem valores suportados até 0,015625. Sendo assim, impomos uma restrição!

RichTextBox1.ZoomFactor += 1 ' Zoom in
 
If RichTextBox1.ZoomFactor <> 1 Then ' Restrição
   RichTextBox1.ZoomFactor -= 1 ' Zoom out
End If

Inserir numeração (1, 2 - etc) - Observação: código não desenvolvido por mim.

Const RTF_NUMSTART As String = _
            "{rtf1ansideff0deftab720{fonttbl{f0fswiss;}{f1fromanfcharset2 Symbol;}{f2fnilfprq2fcharset2;}{f3fromanfprq2;}}" & vbCrLf & _
            "{colortblred0green0blue0;}" & vbCrLf & _
            "deflang1033pardli720fi-360plainf3fs24 1.tab "
        Const RTF_NUMITEM As String = _
            "par @%@.tab "
        Const RTF_NUMEND As String = "par }"
 
        ' Get the current text.
        Dim old_text As String = _
            RichTextBox1.SelectedText.Replace(vbCrLf, vbLf)
        Dim lines() As String = Split(old_text, vbLf)
 
        ' Start the list.
        Dim new_text As String = RTF_NUMSTART & lines(0) & vbCrLf
 
        ' Add the other lines.
        For i As Integer = 1 To lines.Length - 1
            new_text &= _
                RTF_NUMITEM.Replace("@%@", (i + 1).ToString()) & _
                lines(i) & vbCrLf
        Next i
 
        ' Remove the final vbCrLf.
        new_text = new_text.Substring(0, new_text.Length - vbCrLf.Length)
 
        ' End the list.
        new_text &= RTF_NUMEND
 
        ' Save the result.
        RichTextBox1.SelectedRtf = new_text
 
        RichTextBox1.Focus()
Para formatares o tipo de numeração ao teu gosto, visita esta página.

Mudar o tipo de letra + tamanho da mesma:

Private Sub MudarLetra(ByRef RichText As RichTextBox)
        If RichText.SelectionFont IsNot Nothing Then
            RichText.SelectionFont = New Font(ComboBox1.Text, ComboBox2.Text)
        End If
End Sub

No próximo e último artigo falarei sobre a relação entre a RichTextbox e as bases de dados, até lá!

Artigo escrito por bioshock

dev_net/vb.net/richtextbox_ii.txt · Esta página foi modificada pela última vez em: 2018/05/14 21:37 (Edição externa)