PROPRIEDADE ENABLED DOS CONTROLES NO FORM

MARCELOKROL 05/03/2011 08:06:52
#367302
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


RICART 05/03/2011 08:16:57
#367303
Posta o código da HabilitaControles para podermos saber.
JONATHANSTECKER 05/03/2011 08:38:40
#367306

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
MARCELOKROL 05/03/2011 08:53:46
#367307
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.
FOXMAN 05/03/2011 09:25:31
#367310
Marcelo,

Veja se este exemplo te ajuda.

http://www.vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=8890

Qualquer coisa posta tamo ae....
RODRIGOFERRO 05/03/2011 10:25:49
#367314
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
DANLELES 05/03/2011 10:41:12
#367316
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.
MARCELOKROL 05/03/2011 18:20:25
#367341
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:

 
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
RICART 05/03/2011 20:36:49
#367353
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.

PEGUDO 08/03/2011 19:22:30
#367534
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í
Página 1 de 2 [12 registro(s)]
Tópico encerrado , respostas não são mais permitidas