PROPRIEDADE ENABLED DOS CONTROLES NO FORM
Então bom dia a todos. Gostaria de saber o porque se eu definir em mode design a propriedade enabled = false de alguns controles (label, textbox, button) e depois eu criar uma sub HabilitaControles e chamar ela de dentro de uma outra sub, a mesma não muda a propriedade enabled = true tipo assim:
Sub ProcessaSenha()
if senha <> vbnullstring then
HabilitaControles
end if
End Sub
Posta o código da HabilitaControles para podermos saber.
Para alterar em modo Design é só alterar a propriedade Enable nas propriedades do controle. Conforme imagem.
E em tempo de execução...
Sub ProcessaSenha()
If String.IsNullOrEmpty(Me.Senha) Then
Me.HabilitaControles(False)
Else
Me.HabilitaControles(True)
End If
End Sub
[ô][ô][ô] <summary>
[ô][ô][ô] Habilita ou desabilta os controles do formulário
[ô][ô][ô] </summary>
[ô][ô][ô] <param name=[Ô]pSituacao[Ô]>Situação dos controles</param>
Protected Sub HabilitaControles(ByVal pSituacao As Boolean)
Me.Label1.Enabled = pSituacao
Me.Label2.Enabled = pSituacao
Me.Label3.Enabled = pSituacao
Me.Label4.Enabled = pSituacao
Me.Button1.Enabled = pSituacao
Me.Button2.Enabled = pSituacao
Me.Button3.Enabled = pSituacao
End Sub
Prezado JONATHANSTECKER e se eu disser que foi justamente isso que eu fiz e não funcionou.
eu quero que funcione assim abre o frmprincipal, ai os controle do frmprincipal estão enbled = false em tempo de design. Ai quando o usuario entra com a senha (frmsenha em ontop) e pressiona enter dispara o ProcessaSenha no frmprincipal e habilita os campos, so que isso não funciona.
eu quero que funcione assim abre o frmprincipal, ai os controle do frmprincipal estão enbled = false em tempo de design. Ai quando o usuario entra com a senha (frmsenha em ontop) e pressiona enter dispara o ProcessaSenha no frmprincipal e habilita os campos, so que isso não funciona.
Marcelo,
Veja se este exemplo te ajuda.
http://www.vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=8890
Qualquer coisa posta tamo ae....
Veja se este exemplo te ajuda.
http://www.vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=8890
Qualquer coisa posta tamo ae....
Amigão aquele objeto senha é String ou é um textBox ?
String = senha <> String.Empty
textbox = senha.txt <> String.Empty
ah e posta o conteudo da Sub HabilitaControles..
Vlw
String = senha <> String.Empty
textbox = senha.txt <> String.Empty
ah e posta o conteudo da Sub HabilitaControles..
Vlw
só uma pergunta..
estes controles estão continas dentro de um frame?
Pois se você habilitar um controle dentro de um frame desabilitado, realmente não funciona. Pois os componentes herdam esta propriedade.
estes controles estão continas dentro de um frame?
Pois se você habilitar um controle dentro de um frame desabilitado, realmente não funciona. Pois os componentes herdam esta propriedade.
Prezado FOXMAN não é bem uma senha de login e sim uma senha que controla atendimentos de clientes, tipo assim o cliente chega na loja e retira uma senha na miniimpressora e atraves desta senha quando ele for chamado sera criado o atendimento para o cliente, e quando ele chegar no caixa o operador importa esta senha e terá todos os serviços requisitados pelo cliente, entedeu?
Este mesmo processo ja esta funcionando perfeitamente em vb6 so que estou migrando o meu sistema aos poucos e agora cheguei neste modulo.
Segue as rotinas:
o mais imteressante que se eu chamar a sub habilitacontroles de dentro de um button ela funciona perfeitamente, so dentro da sub processasenha que ela não funciona, ja depurei o codigo e processo chega nele a executa todos as linhas de enabled so que não repassa para o form.
esta subo esta dentro do form ode estão os controles.
aaaa esqueci de mencionar que a variável SenhaAtend é string
Obrigado a todos
Este mesmo processo ja esta funcionando perfeitamente em vb6 so que estou migrando o meu sistema aos poucos e agora cheguei neste modulo.
Segue as rotinas:
Public Sub ProcessaSenha()
If SenhaAtend <> vbNullString Then
[ô]... parte do codigo que não vem ao caso
Else
Msg([Ô]Deseja gerar automaticamente?[Ô], MsgBoxStyle.YesNo)
If RetornoMsg = MsgBoxResult.Yes Then
SenhaAtend = ProximoId([Ô]TMP_ATEND1[Ô], [Ô]SENHA[Ô])
LblSenha.Text = [Ô]Senha: [Ô] & Format(CDbl(SenhaAtend), [Ô]0000000[Ô])
Dim Tmp_FrmCarregaVendedor2 As New FrmCarregaVendedor
Tmp_FrmCarregaVendedor2.ShowDialog()
Tmp_FrmCarregaVendedor2 = Nothing
[ô]se o parametro exigir que seja informado o cliente no atendimento
If PegaParametro([Ô]InformarClienteNoAtendimento[Ô], [Ô]N[Ô], [Ô]Se ira informar o cliente no atendimento[Ô]) = [Ô]S[Ô] Then
Dim Tmp_frmCarregaCliente As New frmCarregaCliente
Tmp_frmCarregaCliente.ShowDialog()
Tmp_frmCarregaCliente = Nothing
End If
Call Me.HabilitaControles()
Else
Dim Tmp_FrmSenha As New FrmSenha
Tmp_FrmSenha.Show(Me)
Tmp_FrmSenha = Nothing
End If
End If
End Sub
Public Sub HabilitaControles(Optional ByVal Valor As Boolean = True)
Me.LblNameAcrescimos.Enabled = Valor
Me.LblNameDescontos.Enabled = Valor
Me.LblNameItens.Enabled = Valor
Me.LblNameSubTotal.Enabled = Valor
Me.LblTotalDesc.Enabled = Valor
Me.LblSubTotal.Enabled = Valor
Me.LblTotalAcresc.Enabled = Valor
Me.LblTotalItens.Enabled = Valor
Me.LblAtend.Enabled = Valor
Me.LblSenha.Enabled = Valor
Me.LblVendedor.Enabled = Valor
Me.LblNumCliche.Enabled = Valor
Me.BtnTotaliza.Enabled = Valor
Me.BtnCancAtend.Enabled = Valor
Me.BtnObserva.Enabled = Valor
Me.BtnPesqProdutos.Enabled = Valor
Me.LblData.Enabled = Valor
If Valor = True Then
Me.PnTotais2.BackColor = Color.Maroon
Else
Me.PnTotais2.BackColor = Color.Silver
End If
End Sub
o mais imteressante que se eu chamar a sub habilitacontroles de dentro de um button ela funciona perfeitamente, so dentro da sub processasenha que ela não funciona, ja depurei o codigo e processo chega nele a executa todos as linhas de enabled so que não repassa para o form.
esta subo esta dentro do form ode estão os controles.
aaaa esqueci de mencionar que a variável SenhaAtend é string
Obrigado a todos
Bom,
Sendo assim, vc precisa debugar para descobrir se a senha está realmente igual a vbNullString.
Só para ter certeza, chame a sub na condição verdadeira do IF para ter certeza:
Public Sub ProcessaSenha()
If SenhaAtend <> vbNullString Then
Call Me.HabilitaControles()
[ô]... parte do codigo que não vem ao caso
Else
(...)
Testa aÃ. Se funcionar, é pq a senha não está sendo passada como vbNullString, então vc procura corrigir essa parte.
Sendo assim, vc precisa debugar para descobrir se a senha está realmente igual a vbNullString.
Só para ter certeza, chame a sub na condição verdadeira do IF para ter certeza:
Public Sub ProcessaSenha()
If SenhaAtend <> vbNullString Then
Call Me.HabilitaControles()
[ô]... parte do codigo que não vem ao caso
Else
(...)
Testa aÃ. Se funcionar, é pq a senha não está sendo passada como vbNullString, então vc procura corrigir essa parte.
Cara, talvez o [Ô]vbnullstring[Ô] esteja te atrapalhando.
Tenta colocar [txt-color=#0000f0]if[/txt-color] senha <> [txt-color=#e80000][Ô][Ô][/txt-color] [txt-color=#0000f0]then[/txt-color] ou [txt-color=#0000f0]if[/txt-color] senha <> [txt-color=#0000f0]Nothing then[/txt-color]
Verifica também se a tua variável [txt-color=#0000f0]senha[/txt-color] está indo pra sub com algum valor pq pelo que vi tua sub não tem parâmetros.
QQ coisa posta aÃ
Tenta colocar [txt-color=#0000f0]if[/txt-color] senha <> [txt-color=#e80000][Ô][Ô][/txt-color] [txt-color=#0000f0]then[/txt-color] ou [txt-color=#0000f0]if[/txt-color] senha <> [txt-color=#0000f0]Nothing then[/txt-color]
Verifica também se a tua variável [txt-color=#0000f0]senha[/txt-color] está indo pra sub com algum valor pq pelo que vi tua sub não tem parâmetros.
QQ coisa posta aÃ
Tópico encerrado , respostas não são mais permitidas