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