Caixas de texto o que há de novo ?


O VB.NET trouxe muitas novidades , na verdade as novidades são tantas que as vezes você pode ficar meio perdido em algumas tarefas básicas que estava acostumado a realizar com um pé na costa no seu velho e bom VB 6.0 ( ou VB 5.0).

Creio que um dos controles de formulário mais utilizado seja a famosa caixa de texto . Bem a primeira coisa que você deve saber é que o nome padrão dela mudou na versão .NET:  passou de  Text1 para TextBox1 . Neste dica eu vou mostrar algumas tarefas básicas usando as caixas de texto , como era feito no VB 5/6 e como é feito no VB.NET .

1 - Não permitir que beep soe ao pressionar a tecla ENTER.

VB6 - atribuimos o valor zero a KeyAscii

Private Sub Text1_KeyPress(KeyAscii As Integer)
    ' ao pressionar ENTER atribuímos o valor zero a KeyAscII
    If KeyAscii = vbKeyReturn Then
         KeyAscii = 0
    End If
End Sub

VB.NET - atribuimos True a propriedade Handled (Keychar representa a tecla pressionada)

Private Sub TextBox1_KeyPress(ByVal sender As Object, _
                              ByVal e As System.Windows.Forms.KeyPressEventArgs) _
                              Handles TextBox1.KeyPress
    ' ao pressionar ENTER atribuimos True a e
    If e.KeyChar = Convert.ToChar(Keys.Return) Then
        e.Handled = True
    End If
End Sub

2 - Trocar uma tecla pressionada por outra tecla

VB6:  No evento KeyPress atribuimos o novo valor da tecla a KeyAscii

Private Sub Text1_KeyPress(KeyAscii As Integer)
    ' troca o ponto pela virgula
    If KeyAscii = Asc(".") Then
        KeyAscii = Asc(",")
    End If
End Sub

VB.NET - usamos SendKeys 

Private Sub TextBox1_KeyPress(ByVal sender As Object, _
                              ByVal e As System.Windows.Forms.KeyPressEventArgs) _
                              Handles TextBox1.KeyPress
    ' troca ponto por virgula
    If e.KeyChar = "."c Then
        e.Handled = True
        ' envia a nova tecla
        SendKeys.Send(",")
    End If
End Sub

3 - Selecionar todo o texto quando o controle recebe o foco.

VB6 - Usamos o evento GotFocus e as propriedades SelStart e SelLength.

Private Sub Text1_GotFocus()
    With Text1
        .SelStart = 0
        .SelLength = Len(.Text)
    End With
End Sub

VB.NET - Usamos o evento Enter e a propriedade SelectAll()

Private Sub TextBox1_Enter(ByVal sender As Object, _
                           ByVal e As System.EventArgs) _
                           Handles TextBox1.Enter
        TextBox1.SelectAll()
End Sub 

4- Selecionar parte de um texto no controle TextBox

 VB6 - Podemos usar o evento Click - Abaixo selecionamos a partir da primeira posição 4 caracteres.

Private Sub Text1_Click()
    Text1.SelStart = 0   ' inicia seleção na primeira posição
    Text1.SelLength = 4  ' seleciona 4 caracteres
End Sub

 

VB.NET - Praticamente identico ao VB 5/6 .

Private Sub TextBox1_Click(ByVal sender As Object, _
                                 ByVal e As System.EventArgs) _
                                 Handles seleccionarBtn.Click
    TextBox1.SelectionStart = 0    ' inicia seleção na primeira posição
    TextBox1.SelectionLength = 4    ' seleciona 4 caracteres
End Sub

5- Copiar o texto selecionado para a área de transferência

VB6 -

Private Sub Text1_Click()
    ' copiar a seleção para o clipboard
    If Text1.SelLength > 0 Then
        Clipboard.SetText Text1.SelText
    Else
        ' copiar todo o texto
        Clipboard.SetText Text1.Text
    End If
End Sub

VB.NET -

Private Sub TextBox1_Click(ByVal sender As Object, _
                            ByVal e As System.EventArgs) _
                            Handles copiarBtn.Click
    If TextBox1.SelectionLength = 0 Then
        TextBox1.SelectAll()
    End If
    TextBox1.Copy()
End Sub

6- Pegar o texto da área de transferência

VB6 -

Private Sub Text1_Click()
    If Text1.SelLength > 0 Then
        Text1.SelText = Clipboard.GetText
    Else
        Text1.Text = Clipboard.GetText
    End If
End Sub

VB.NET -

Private Sub TextBox1_Click(ByVal sender As Object, _
                           ByVal e As System.EventArgs) _
                           Handles PegarBtn.Click
    If TextBox1.SelectionLength = 0 Then
        TextBox1.SelectAll()
    End If
    TextBox1.Paste()
End Sub

7- Cortar o texto selecionado

VB6 -

Private Sub Text1_Click()
    If Text1.SelLength > 0 Then
        Clipboard.SetText Text1.SelText
        Text1.SelText = ""
    End If
End Sub

VB.NET -

Private Sub TextBox1_Click(ByVal sender As Object, _
                            ByVal e As System.EventArgs) _
                            Handles cortarBtn.Click
    If TextBox1.SelectionLength > 0 Then
        TextBox1.Cut()
    End If
End Sub

Aguarde mais dicas VB.NET . até lá...


José Carlos Macoratti