MASCARA CODIGO PRODUTO

 Tópico anterior Próximo tópico Novo tópico

MASCARA CODIGO PRODUTO

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#493675 - 28/04/2020 19:35:08

EDVALDORR
GUAPIARA
Cadast. em:Fevereiro/2013


Última edição em 28/04/2020 19:35:40 por EDVALDORR

tenho um cadastro de produtos que no codigo do item leva o codigo do grupo e do sub grupo.
tipo assim 99.55.0001 onde 99 é o grupo, 55 é o subgrupo e 0001 é o item.
eu gostaria que ao selecionar o grupo e o subgrupo carregasse em um textbox ou maskedtextbox estas informações
que ficaria assim 99.55.____ mas que o usuario conseguisse apenas digitar o complemento final e que o usuario não conseguisse apagar o codigo ja incluido,

se alguém puder me ajudar por favor...




#493691 - 29/04/2020 14:52:13

PERCIFILHO
MATAO [SP]
Cadast. em:Dezembro/2009


Não sei se funciona, não tenho como testar, mas talvez você poderia tentar, quando o foco estiver na textbox usar o SelStart para posicionar no local que deverá ser preenchido e para não apagar o grupo e subgrupo, tenta bloquear talvez
no evento TextChange da textbox, verificando se tiver 6 ou menos dígitos, bloquear a textbox para digitação.

____________________________________________________
Não há nessa vida algo que não se possa alcançar, você só precisa ir buscar.

#493867 - 19/05/2020 08:11:26

PEGUDO
RIO DE JANEIRO
Cadast. em:Março/2009


Última edição em 19/05/2020 08:13:55 por PEGUDO

Cara,
Não seria mais jogo você criar um Label que conteria os dados fixos e o TextBox com os dados a serem inseridos pelo usuário?
Exemplo:
Dim grupo As Integer = 99, subGrupo As Integer = 55

lblDadosFixos.TextAlign = MiddleRight 'Alinhamento do texto da direita para a esquerda.
lblDadosFixos. text = String.Format("{0}.{1}.", grupo, subGrupo)


Assim nunca será possível que o usuário consiga alterar os dados do grupo e do subgrupo
Você só precisará alinhar o Label e o TextBox para os dois ficarem lado a lado, mais ou menos como a ilustração abaixo.

           ____________________________
99.55. |            TextBox                              |
           -----------------------------------------------

"Às vezes, para poder andar pra frente, o homem deve deixar tudo para trás"

#493869 - 19/05/2020 11:32:55

MOUSER
CARAPICUIBA
Cadast. em:Fevereiro/2014


O ideal fazer o que diz Pegudo. Criar uma label que ja carregue o Grupo e Subgrupo no "Text" dele, depois usar uma variavel pra receber o "Text" da label e da textbox.

VB.NET + SQL Server = Muita coisa sei, mas muita coisa para aprender.
Curso de Excel e VB6 www.cursoexcelvba.com.br
Blog do Mouser


#493871 - 19/05/2020 12:35:57

FFCOUTO
COM LEVY GASPARIAN
Cadast. em:Março/2005


Use o controle MaskedTextbox e altere a propriedade Mask para "\9\9.\5\5.9999".
Observe que o caracter \ funciona de forma a fixar o caracter seguinte. Assim, você vai precisar montar uma função para retornar a parte do grupo e subgrupo conforme formato acima.

Cursos de Excel e VB6:
cursoexcelvba.com.br


#493882 - 21/05/2020 05:57:37

PEGUDO
RIO DE JANEIRO
Cadast. em:Março/2009


Citação:
:
Use o controle MaskedTextbox e altere a propriedade Mask para "99..9999".
Observe que o caracter  funciona de forma a fixar o caracter seguinte. Assim, você vai precisar montar uma função para retornar a parte do grupo e subgrupo conforme formato acima.

FFCOUTO, sua proposta é interessantíssima, mas ela acarreta uma coisa que eu não gosto muito: o usuário poderá, ainda assim, "passear" com o cursor pela parte fixa.
A não ser que a intenção do programa seja que o usuário possa copiar e colar o conteúdo da MaskdTextBox, eu utilizo o Label junto com TextBox.

"Às vezes, para poder andar pra frente, o homem deve deixar tudo para trás"

#493909 - 23/05/2020 10:53:52

PLUGSOFTSM
SANTA MARIA
Cadast. em:Julho/2015


A ideia do FFCOUTO é a mesma que eu iria sugerir
Mas vendo o que o PEGUDO falou e vc quiser fugir disso eu faria o seguinte caso vc queira eliminar o aspecto de 2 componentes para o usuário
Colocaria a Label e o textbox dento de um componente, como um frame ou até sobre uma label vazia com borda e cor igual aos demais componentes da tela
Colocaria dentro desse componente a label e o textbox sem bordas e na cor desejada e posicionaria os mesmos de modo a dar a sensação visual de serem um unico componente
Isso resolveria teu problema e vc não precisaria gastar horas programando para monitorar isso

Uma vez, na época do VB6 eu fiz algo assim
Eu usava uma chamada a dll para pegar a posição do cursor dentro do textbox
Se a posição fosse inferior ao comprimento da parte fixa, usava o selstart se não me engano, para jogar o cursor para a direita, para fora da parte fixa
Isso vai te dar uma baita mão de obra, pois vc vai ter que tratar o click do mouse
As teclas de navegação
E as combinações de teclas,
O Ctrl X, o Ctrl V, o ctrl A e outras





#493912 - 23/05/2020 14:38:07

PERCIFILHO
MATAO [SP]
Cadast. em:Dezembro/2009


Eu faria como o PLUGSOFTSM disse. Acho que é uma maneira bem interessante


____________________________________________________
Não há nessa vida algo que não se possa alcançar, você só precisa ir buscar.

 Tópico anterior Próximo tópico Novo tópico


Para responder este tópico o login é requerido
Se você já possui uma conta de usuário por favor faça seu login
Se você não possui uma conta de usuário use a opção Criar usuário