Usuário com melhor resposta
Erro no Código

Pergunta
-
Estou montando um código que tem o intuito de limpar todos os TextBox da minha Fomr.
Procurei na net e achei um código e tals,alterei o que tinha que alterar só que quando eu rodo o mesmo dá o seguinte erro:
Será que alguém sabe o que está ocorrendo ? Desde já agradeço
Respostas
-
Public Class Form1 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Negocios.LimparControles(Me) End Sub End Class Public Class Negocios Public Shared Sub LimparControles(_form As Form) If (_form.Controls.Count > 0) Then Dim _c As Control For Each _c In _form.Controls If (TypeOf _c Is TextBox) Then _c.Text = String.Empty End If Next End If End Sub End Class
se a resposta foi útil, classifique :)
ate mais,
Rodrigo Soria- Marcado como Resposta Ninho_Blink quarta-feira, 18 de abril de 2012 14:45
-
Nesse caso voce pode chamar assim:
No Form voce chama assim:
Call apaga(Me)
E na sua bLL fica assim:
Sub apaga(pForm as Form) dim _c as control for each _c in pForm.controls if(typeOf _c is textbox) then _c.text = nothing end if next End Sub
Se voce estiver usando o Form e apenas os campos,sem algum groupbox,voce passa o Me se tiver usando group vc passa o Me.grupo,e na recepcao do parsmetro apaga(pObj as GroupBox)
- Editado Eduardo xUni quarta-feira, 18 de abril de 2012 11:55
- Marcado como Resposta Ninho_Blink quarta-feira, 18 de abril de 2012 14:45
-
Pra evitar esse problema de escopo,deixe seu metodo na camada de negocio em static,ou seja,deixar ela statica,assim nao precisa ficar instanciando.
Public Shared Sub apaga(pObj As Form)
Desta forma nao precisar usar o new class.
depois só chamar;
Call apaga(Nome_do_form)
- Marcado como Resposta Ninho_Blink quinta-feira, 19 de abril de 2012 20:35
-
Shared faz com que nao precise criar uma instancia do objeto,evita 'comandos' desse tipo:
dim classe as new Classe_Negocio()
Dessa forma só chamar direto pelo nome do metodo,igual voce fez,e funcionou.
Procure estudar "Modificadores de acessos","escopo de variaveis" e "instancia de objetos".
...
Como voce ta fazendo isso (limpar outro form,atraz do principal)?
- Editado Eduardo xUni quinta-feira, 19 de abril de 2012 20:49
- Marcado como Resposta Ninho_Blink quinta-feira, 19 de abril de 2012 20:51
Todas as Respostas
-
-
Então no caso eu não posso usar o Me,por que estou programando em 3 camadas
Então minha camada Que possui os Form chama a camada de negocio,e é justo na camada de negocio que eu deixei esse código.
Assim minha camada aonde está os Forms chama a camada de negocio que é responsável pela limpeza.
No caso não sei como eu iria fazer para invés de colocar o ME colocar a Form que está chamando.
Teria alguma sugestão ? Desde já muito obrigado ^^ -
Ddentro do teu metodo faz assim
public tipo nomedometodo(byvale meuform As form)
ddepois chama no teu form principal e escreve dentro da referencia o teu form onde existe os texos k queres limpar.
Se o amor fosse pecado, quem seria INOCENTE?
-
Public Class Form1 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Negocios.LimparControles(Me) End Sub End Class Public Class Negocios Public Shared Sub LimparControles(_form As Form) If (_form.Controls.Count > 0) Then Dim _c As Control For Each _c In _form.Controls If (TypeOf _c Is TextBox) Then _c.Text = String.Empty End If Next End If End Sub End Class
se a resposta foi útil, classifique :)
ate mais,
Rodrigo Soria- Marcado como Resposta Ninho_Blink quarta-feira, 18 de abril de 2012 14:45
-
Nesse caso voce pode chamar assim:
No Form voce chama assim:
Call apaga(Me)
E na sua bLL fica assim:
Sub apaga(pForm as Form) dim _c as control for each _c in pForm.controls if(typeOf _c is textbox) then _c.text = nothing end if next End Sub
Se voce estiver usando o Form e apenas os campos,sem algum groupbox,voce passa o Me se tiver usando group vc passa o Me.grupo,e na recepcao do parsmetro apaga(pObj as GroupBox)
- Editado Eduardo xUni quarta-feira, 18 de abril de 2012 11:55
- Marcado como Resposta Ninho_Blink quarta-feira, 18 de abril de 2012 14:45
-
-
-
Uma string vazia não é um objeto nulo.
E você pode declarar variáveis no For Each.
-
-
-
-
Instanciar a classe onde esta o Bloco:
Dim apaga as new SUA_CLASSE Try 'codigo Catch ex As Exception Finally Call apaga.teste(Me) End Try
passe o parametro Me ao invez do nome do form,isso se referenciando pelo seu Form em si.
- Editado Eduardo xUni quinta-feira, 19 de abril de 2012 16:40
-
Cara Não entendi
Eu vou criar uma variavel apaga ?
E aonde eu vou por essa parte?- Editado Ninho_Blink quinta-feira, 19 de abril de 2012 18:36
-
-
Eu estou passando outro form
Por que e assim meu software está em 3 camadas,então joguei a parte da limpeza dos textbox na cadama de negocio.
Quando eu insero um registro a camade de negocio chama a camada de banco de dados.
Então quando o registro e inserido com sucesso a camada de negocio tem que limpar a form que realizou o registro.Que seria a form que eu estou tentando passar por parametro. -
Pra evitar esse problema de escopo,deixe seu metodo na camada de negocio em static,ou seja,deixar ela statica,assim nao precisa ficar instanciando.
Public Shared Sub apaga(pObj As Form)
Desta forma nao precisar usar o new class.
depois só chamar;
Call apaga(Nome_do_form)
- Marcado como Resposta Ninho_Blink quinta-feira, 19 de abril de 2012 20:35
-
Cara deu certo.
Só uma coisa teria como me explicar o que Shared faz ?
Por que eu alterei mas não entendi por que deu certo,quer dizer ele só da certo quando eu compilo a form direto.
Se pela minha form principal eu chamar a outra form ai ele não limpa,mas isso eu vou tentar fuçar para arrumar.
Ficaria muito grato- Editado Ninho_Blink quinta-feira, 19 de abril de 2012 20:41 Deu erro depois
-
Shared faz com que nao precise criar uma instancia do objeto,evita 'comandos' desse tipo:
dim classe as new Classe_Negocio()
Dessa forma só chamar direto pelo nome do metodo,igual voce fez,e funcionou.
Procure estudar "Modificadores de acessos","escopo de variaveis" e "instancia de objetos".
...
Como voce ta fazendo isso (limpar outro form,atraz do principal)?
- Editado Eduardo xUni quinta-feira, 19 de abril de 2012 20:49
- Marcado como Resposta Ninho_Blink quinta-feira, 19 de abril de 2012 20:51
-