FUNCAO - MASCARA VB6 NO VB.NET

JESUEL.OLIVEIRA 13/07/2012 10:49:28
#406001
Olá, Amigos usava o códig abaixo no vb6 para formatar o campo valor, código aqui do forum mesmo mas no VB.NET não funfa alguem tem uma solução ou outra forma de fazer que possa me ajudar com uma dica.

 
Public Sub MascMoeda(ByVal Controle As TextBox)
Dim i As Integer
Dim T As String
With Controle
[ô]Armazena o Text, para nao causar o evento change a toa
T = .Text
[ô]Armazena o SelStart da Dir. para Esq., pois o alinhamento é esq.
i = Len(T) - .SelectionStart
[ô]Tira a virgula da variavel T
T = Replace(.Text, [Ô],[Ô], [Ô][Ô])
[ô]Acrescenta zeros
If Len(T) < 3 Then T = String(3 - Len(T), [Ô]0[Ô]) & T [ô]---------------------aqui fica String sublinhado e não funfa de jeito nenhum
[ô]Monta o nr separando as casas
T = Mid(T, 1, Len(T) - 2) & [Ô],[Ô] & Mid(T, Len(T) - 1)
[ô]Formata o nr para tirar os zeros a mais q podem ficar no começo
T = Format(T, [Ô]#0.00[Ô])
[ô]Verifica se o valor do Text é <> da Var. T (para nao travar no evento Change)
If .Text <> T Then .Text = T
[ô]Como mudou o valor do TextBox, tem q voltar o SelStart ao q era antes
.SelectionStart = Len(T) - i
End With
End Sub
GUIMORAES 13/07/2012 14:15:04
#406025
formatNumber(cdec(txt_Valor.text),2)

Use isto.
JESUEL.OLIVEIRA 16/07/2012 17:21:49
#406200
Amigo, GUIMORAES123 Obrigado pela força.

Na verdade a função acima tem como objetivo o usuário ir digitando e o text ir se ajustando igual a caixa de banco, eu particulamente não gosto, mas como no sistema antigo tinha muitos usuários se adequaram a esta forma ai já sabe né.
OCELOT 16/07/2012 20:01:33
#406215
A função String(tamanho, caracter) do VB6 virou StrDup(tamanho, caracter) no VB.Net
GUIMORAES 17/07/2012 13:28:55
#406239
Olha o que eu uso

Private Sub formataMonetario(ByVal sender As System.Object, ByVal e As Windows.Forms.KeyPressEventArgs)
e.Handled = True

Dim tempTXT As TextBox = CType(sender, TextBox)

If e.KeyChar = Chr(Keys.Delete) Then

End If

If e.KeyChar = Chr(Keys.Back) Then
If tempTXT.Tag IsNot Nothing Then
If Not tempTXT.Tag.ToString.Length <= 1 Then
tempTXT.Tag = tempTXT.Tag.ToString.Substring(0, tempTXT.Tag.ToString.Length - 1)
Else
tempTXT.Tag = [Ô][Ô]
tempTXT.Text = [Ô]0,00[Ô]
Exit Sub
End If
End If
Else
If Not Char.IsNumber(e.KeyChar) Then Exit Sub
End If

If Not e.KeyChar = Chr(Keys.Back) Then tempTXT.Tag &= e.KeyChar
tempTXT.Text = Math.Round(Decimal.Parse(tempTXT.Tag.ToString) / 100, 2).ToString

tempTXT.Text = FormatNumber(tempTXT.Text, 2)

tempTXT.SelectionLength = 0

End Sub


Ai chamo o metodo no evento keypress do textBox

formataMonetario(sender, e)

você deve deixar o textbox como ReadOnly = true
Abraços
TECLA 19/07/2012 14:41:40
#406256
Resposta escolhida
Veja se te ajuda.

http://sites.google.com/site/programacaoonline/family-blog/vb-net/textbox-com-mascara-moeda-em-vb-net
JESUEL.OLIVEIRA 19/07/2012 17:17:23
#406271
Amigos, muito Obrigado pela apoio e sugestões, o resposta do amigo tecla foi a mais condizente com minha solicitação agradeço a todos.
Tópico encerrado , respostas não são mais permitidas