VB.NET 2005 - Trabalhando com RichTextBox
Há algum tempo atrás, no artigo : Criando um editor de textos no VB .NET, eu mostrei como criar um editor de textos no VB.NET que usava o controle RichTextBox.
Nota: Para saber mais veja também o artigo: VB.NET - Criando um editor de textos com verificador ortográfico
Estou voltando ao tema para mostrar como podemos criar um simples editor de textos usando o componente RichTextBox no Visual Basic 2005 Express.
Neste artigo vou usar a classe do colega © Rostislav V. Konnov para usar em um exemplo que mostra como trabalhar com o controle RichTextBox com alguns recursos estendidos.
Que tal criar um editor para código Visual Basic, e usando os recursos do RichTextBox, criar um esquema de cores de fontes e texto permitindo assim a configuração pelo usuário ?
Parece complicado , não é mesmo ??? mas não é ... Pois no VB 2005 coisas complicadas podem ser facilmente resolvidas...
O componente RichTextBox é similar com o controle TextBox mas fornece características mais avançadas que podemos explorar. Dentre elas temos a formatação de texto, cores e fontes. Da mesma forma que o controle TextBox o controle RichTextBox é baseado na classe TextBoxBase a qual é baseada na classe Control.
Ao acessar textos no controle RichTextBox temos duas opções:
Além disto o controle RichTextBox fornece métodos para abrir e salvar arquivos e procurar strings:
- LoadFile - permite carregar um arquivo .RTF existente ou um arquivo Texto no controle. Você pode também carregar dados de um stream de dados já aberto.
- SaveFile - permite salvar para RTF ou ASCII texto. Você também pode salvar para um stream de dados aberto.
- Find - permite localizar strings específicas no texto do controle
Você também pode inicialiar o controle para dados armazenados em memória. Se o texto no interior do controle contiver links para sítios web , você pode usar a propriedade DetectUrls para exibir o link apropriadamente no texto; pode também tratar o evento LinkClicked para realizar tarefas associada com o link.
A propriedade SelectionProtected permite proteger o texto no controle de manipulações por parte do usuário. Com o texto protegido você pode gerenciar o evento Protected para determinar quando o usuário tentou modificar o texto ou alertar o usuário que o texto esta protegido.
Abra o Visual Basic 2005 Express Editon e crie um novo projeto do tipo WIndows Application usando a linguagem Visual Basic com o nome de RichtextBoxDemo
Altere o nome do formulário para frmMain.vb e a seguir inclua um controle RichTextBox e 5 botões de comando no formulário conforme leiaute abaixo:
A seguir no menu Project inclua um novo formulário Windows Forms no projeto com o nome de frmschema.vb e inclua neste formulário componentes Label, Button, ChekBox e ListBox conforme o leiaute abaixo.
Este formulário permitirá a configuração pelo usuários das cores e fontes usadas no texto do controle RichTextBox.
No formulário do projeto vamos incluir a seguinte linha de código:
Private m_ColorRTB As ColorRichTextBox.clsColorRichTextBoxEla define uma variável do tipo da classe clsColorRichTextBox definida no namespace ColorRichtextBox. Essa é a classe que eu disse que estaria usando no projeto.
No evento Click do botão de comando Carrega Arquivo do formulário frmMain vamos incluir o código que irá carregar o arquivo :
Private Sub cmdLoadFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdLoadFile.Click
ofd.Filter = "Arqs. VB.NET (*.vb)|*.vb"
Dim sr As New IO.StreamReader(ofd.FileName)
m_ColorRTB.RecolorEntireText()
lblTime.Text = "Carrega Arquivo: " & ts.TotalMilliseconds / 1000 & " segs." sr.Close() End If End Sub |
No início definimos um objeto do tipo OpenFileDialog() que irá abrir a caixa de diálogo Abrir Arquivo permitindo ao usuário selecionar um arquivo para ser carregado.
Definimos como diretório inicial de abertura a pasta da nossa aplicação e usamos como filtro a exibição de arquivos do tipo Visual Basic com extensão .vb.
Na seqüência, apos o arquivo ter sido escolhido, abrimos um streamreader para ler o arquivo e aplicamos as propriedades definida no esquema pela classe clsColorRichTextBox
Note que estamos exibindo o tempo gasto durante o processo da seguinte forma:
1- primeiro marcamos o momento de início do processo: Dim StartTime As Long = Now.Ticks
2- Após o encerramento marcamos o tempo gasto e descontamos o tempo inicial: Dim ts As New TimeSpan(Now.Ticks - StartTime)
3- Exibimos o resultado em segundos : ts.TotalMilliseconds / 1000 & " segs."
No final do processo fechamos o streamreader usado: sr.Close()
O restando do código trata de tarefas rotineiras de definição do esquema e de sua aplicação e eu não vou dar detalhes do código para não entediar...
A seguir temos a aplicação em execução exibindo um arquivo do projeto :
Pegue o projeto completo aqui: richTextBoxDemo.zip
Até o próximo artigo ...
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
|
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências: