FUN?ÃO TESTA VAZIO NÃO FUNCIONA!
Gente estou fazendo um Testa vazio mais não está funcionando..
Tenho uma Classe chamada clsControle onde tenho a função abaixo:
Na minha Public Class do Form tenho:
No meu button:
Obs: coloquei em todos os textbox o valor [Ô]x[Ô] na propriedade Tag más não está funcionando ele aparece que todos os campos foram preenchidos mesmo deixando inúmeros campos em branco.. Estou utilizando o Visual Studio 2012 Ultimate e Vb.net
Alguém poderia me auxiliar?
o problema acho que está do For Each ele ja passa pro End If e nem rola na rotina
Tenho uma Classe chamada clsControle onde tenho a função abaixo:
Public Function Testar_vazio(ByVal tela As Object) As Boolean
Dim controle As Control
For Each controle In tela.controls
If TypeOf controle Is TextBox Then
If controle.Text = [Ô][Ô] And controle.Tag <> [Ô]x[Ô] Then
controle.Focus()
Return True
End If
End If
Next
End Function
Na minha Public Class do Form tenho:
Dim Controle as New clsControle
No meu button:
If controle.Testar_vazio(Me) = True Then
MessageBox.Show([Ô]Preencha os campos o obrigatórios[Ô])
Else
MessageBox.Show([Ô]Todos Foram preenchidos[Ô])
End If
Obs: coloquei em todos os textbox o valor [Ô]x[Ô] na propriedade Tag más não está funcionando ele aparece que todos os campos foram preenchidos mesmo deixando inúmeros campos em branco.. Estou utilizando o Visual Studio 2012 Ultimate e Vb.net
Alguém poderia me auxiliar?
o problema acho que está do For Each ele ja passa pro End If e nem rola na rotina
GENTE descobri o problema eu utilizo os componentes DevExpress.. e meus textbox estavam dentro do GroupBox da DevExpress
se eu crio um textbox fora do groupbox da Dev ele funciona a rotina..
e agora como acerto pra ele funcionar dentro do groupbox da Dev?
se eu crio um textbox fora do groupbox da Dev ele funciona a rotina..
e agora como acerto pra ele funcionar dentro do groupbox da Dev?
Nesta situação os controles pertencem ao gruopbox, você deve percorrer os controles do groupbox e não do formulário.
If TypeOf controle Is TextBox Then
DevExpress não é TextBox e sim TextEdit alterar para If TypeOf controle Is TextEdit Then
DevExpress não é TextBox e sim TextEdit alterar para If TypeOf controle Is TextEdit Then
If TypeOf controle Is TextBox Then
DevExpress não é TextBox e sim TextEdit alterar para If TypeOf controle Is TextEdit Then
Não estou usando o textbox do Dev e sim o default do VS..
Nesta situação os controles pertencem ao gruopbox, você deve percorrer os controles do groupbox e não do formulário.
Tentei de varias formas..
[c]
Dim controle As Control
For Each controle In tela.Controls
If TypeOf controle Is TextBox Or TypeOf controle Is MaskedTextBox Or TypeOf controle Is DateTimePicker Or TypeOf controle Is CheckBox Or TypeOf controle Is ComboBox Or TypeOf controle Is GroupBox Or TypeOf controle Is DevExpress.XtraEditors.GroupControl Then
If controle.Text = [Ô][Ô] And controle.Tag <> [Ô]x[Ô] Then
controle.Focus()
Return True
End If
End If
Next
If controle.Testar_vazio(Me) = True Then
MessageBox.Show([Ô]Preencha os campos o obrigatórios[Ô])
Else
MessageBox.Show([Ô]Todos Foram preenchidos[Ô])
End If
ali vc esta passando o form como objeto, experimente passar o nome do group
Boa tarde,
O erro está ocorrendo porque você precisa efetuar um novo loop dentro dos GroupBox... O código deve ficar mais ou menos assim:
Faz um teste ai, pois não estou com o DevExpress aqui para testar.
O erro está ocorrendo porque você precisa efetuar um novo loop dentro dos GroupBox... O código deve ficar mais ou menos assim:
Public Function Testar_vazio(ByVal tela As Object) As Boolean
Dim controle As Control
Dim controle2 As Control
For Each controle In tela.Controls
If TypeOf controle Is TextBox Or TypeOf controle Is MaskedTextBox Or TypeOf controle Is DateTimePicker Or TypeOf controle Is CheckBox Or TypeOf controle Is ComboBox Then
If controle.Text = [Ô][Ô] And controle.Tag <> [Ô]x[Ô] Then
controle.Focus()
Return True
End If
ElseIf TypeOf controle Is GroupBox Or TypeOf controle Is DevExpress.XtraEditors.GroupControl Then
For Each controle2 In controle.Controls
If controle2.Text = [Ô][Ô] And controle2.Tag <> [Ô]x[Ô] Then
controle2.Focus()
Return True
End If
Next
End If
Next
End Function
Faz um teste ai, pois não estou com o DevExpress aqui para testar.
Public Function Testar_vazio(ByVal tela As Object) As Boolean
Dim controle As Control
Dim controle2 As Control
For Each controle In tela.Controls
If TypeOf controle Is TextBox Or TypeOf controle Is MaskedTextBox Or TypeOf controle Is DateTimePicker Or TypeOf controle Is CheckBox Or TypeOf controle Is ComboBox Then
If controle.Text = [Ô][Ô] And controle.Tag <> [Ô]x[Ô] Then
controle.Focus()
Return True
End If
ElseIf TypeOf controle Is GroupBox Or TypeOf controle Is DevExpress.XtraEditors.GroupControl Then
For Each controle2 In controle.Controls
If controle2.Text = [Ô][Ô] And controle2.Tag <> [Ô]x[Ô] Then
controle2.Focus()
Return True
End If
Next
End If
Next
End Function
Muito Obrigado JONATHANS DEU MUITO CERTO!!!!
VLWWWW MUITO OBRIGADO
Tópico encerrado , respostas não são mais permitidas