FOCAR CAMPO

SPYDREX 17/08/2010 14:28:32
#350526
Galerinha é o [Ô]seguintelis[Ô]

Depois de procurar aqui pelo forum e, como não consegui achar resolvi pedir mais uma ajuda.

Eu tentando desenvolver uma rotina aqui para focar um determinado controle do form quando ele não passar por uma determinada critica de dados, tipo assim se o CNPJ do cliente estiver errado: mudar a cor de fundo para amarelo, focar o textbox ou o maskeditbox etc... e mostrar a mensagem que o dado está errado para que o usuário faça as devidas alterações.

Eu já fiz uma classe para criticar os dados, e separei ela do formulário principal, porque o meu objetivo e re-utilizar ela mais tarde em outros pontos do sistema.

Só estou apanhando em como passar o objeto e o form para uma determinada função para que ela fação o foco e mude a cor do fundo.

Não estou usando mais VB6 entre de cabeça no .net

Alguém pode ajudar ?

Grato.
FOXMAN 17/08/2010 15:18:59
#350536
Amigo seria algo parecido com isso


Public Function SuaFuncao(ctrl as control,frm as form) as Boolean

if frm.name = [Ô]xxxxx[Ô] then
beep
end if

if ctrl.name = [Ô]xxxxx[Ô] then
beep
end if

End Function



SPYDREX 17/08/2010 15:38:07
#350537
Citação:

:
Amigo seria algo parecido com isso


Public Function SuaFuncao(ctrl as control,frm as form) as Boolean

if frm.name = [Ô]xxxxx[Ô] then
beep
end if

if ctrl.name = [Ô]xxxxx[Ô] then
beep
end if

End Function





Ok, FOXMAN, vou tentar fazer assim e ver se dá certo.

Mais uma pergunta, eu vou passar um array para fazer a validação dos dados, pois são muitos textboxes, só que o array tem 2 dimensões e é do tipo String, nele eu tenho o Nome do controle na 1.a dimensão e tipo de validação na 2.a dimensão.

Tipo assim: [Ô]CnpjMaskEditBox[Ô],[Ô]CNPJ[Ô]

Então se o tipo de validação for [Ô]CNPJ[Ô] vou disparar uma função para checar o CNPJ pegando os dados CnpjMaskEditBox, só que a minha classe recebe um tipo Object e outro tipo String e tá dando erro de casting, não sei se posso converter o valor da 1.a dimensão em obj.

Se eu passo apenas o nome do campo, ai funciona.

Sabe me dizer o que ocorre ?
JONATHANSTECKER 17/08/2010 15:51:58
#350538
Resposta escolhida
Acredito que seja isso que você quer... Só ajustar o código conforme sua necessidade.

[ô][ô][ô] <summary>
[ô][ô][ô] Classe de funções
[ô][ô][ô] </summary>
[ô][ô][ô] <remarks></remarks>
Public Class Class1

Public Sub Limpar(ByVal Formulario As Object, ByVal Ctrl As Control)
For Each Ctrl In Formulario.Controls
If Ctrl.Name = [Ô]TextBox1[Ô] Then Ctrl.Text = String.Empty
Next
End Sub

End Class


[ô][ô][ô] <summary>
[ô][ô][ô] Formuláro principal
[ô][ô][ô] </summary>
[ô][ô][ô] <remarks></remarks>
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Funcao As New Class1
Funcao.Limpar(Me, Me.TextBox1)
End Sub

End Class
SPYDREX 23/08/2010 15:10:17
#351003
Citação:

:
Acredito que seja isso que você quer... Só ajustar o código conforme sua necessidade.

[ô][ô][ô] <summary>
[ô][ô][ô] Classe de funções
[ô][ô][ô] </summary>
[ô][ô][ô] <remarks></remarks>
Public Class Class1

Public Sub Limpar(ByVal Formulario As Object, ByVal Ctrl As Control)
For Each Ctrl In Formulario.Controls
If Ctrl.Name = [Ô]TextBox1[Ô] Then Ctrl.Text = String.Empty
Next
End Sub

End Class


[ô][ô][ô] <summary>
[ô][ô][ô] Formuláro principal
[ô][ô][ô] </summary>
[ô][ô][ô] <remarks></remarks>
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Funcao As New Class1
Funcao.Limpar(Me, Me.TextBox1)
End Sub

End Class



JONATHANSTECKER

Usei a dica que você passou, só tive que mudar o parâmetro CTRl para string, pois o programa envia o nome do campo como string e não com objeto, mas está funcionando beleza agora...

Valeu.
Tópico encerrado , respostas não são mais permitidas