Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

faelwan

[Resolvido] Acessar controle em outro form

Recommended Posts

Olá pessoal, é minha primeira vez aqui no fórum .Net, mas há algum tempo participo do Forum de Visual Basic.

Bem como já disse, eu programava VB6.0 e resolvi migrar para VB.Net 2008.

Assim ando me deparando com probleminhas bobos de adaptação. Logo peço a ajda de vcs.

 

Seguinte:

Tenho um Formulário de Cadastro que realiza a entrada de materiais no estoque de determinada empresa.

Nesse formulário eu tenho um botão que chama um form modal que exibe em um flexgrid os fornecedores da empresa, nele o usuário clica no fornecedor e clica em Ok, dessa forma esse modal deveria inserir o código do fornecedor escolhido no Form de Cadastro e se fecharia. Foi aí que me deparei com o problema:

 

tentei fazer o seguinte:

'no form modal

Private Sub BtnOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnOk.Click
    frmCadEntradas.txtCodFornecedor.Text= vId
    Me.Close()
End Sub

Já verifiquei o valor de vId e está de acordo.

Pra mim que estava acostumado ao VB6.0, isso funcionaria perfeitamente, rsrs, mas no .net não acontece nada nem gera erro, apena fecha o form modal.

Bom quem puder me ajudar eu agradeço.

 

Obs.: Já li um tópico sobre esse problema aqui no fórum mas não resolveu

 

At+ Pessoal

Att,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom pessoal, passei o dia pesquisando e consegui resolver o problema. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Bem, mesmo que seja um problema básico acredito que existam outros colegas vindos do VB6.0 que possam ter o mesmo problema. Assim posto a solução.

 

Seguinte, de acordo com o Sr Macorrati, nesta fonte VB.Net Trabalhando com FormuláriosNet Trabalhando com Formulários

o conceito de Orientação a Objetos(Que ferve a cabeça dos acostumados com linguagem estrutural) existente no VB.Net define os formulários criados como Classes. Dessa forma antes de mencionar estes formulários no código nós devemos instanciá-los em Objetos:

 

Public ObjfrmCadastros As New frmCadastros

e em seguida utilizar o Objeto no código:

 

Private Sub BtnOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnOk.Click    
ObjfrmCadastros.txtCodFornecedor.Text= vId    
End Sub

Aí sim! Dessa forma funciona!

 

Um macete legal que o Sr Macorrati nos passa, é criar um Modulo já com a criação dos Objetos à partir das classes, adptando bastante o código:

 

Module ModuloBase

    Public ObjMdiSistema As New mdiSistema()
    Public ObjfrmCadEntradas As New frmCadEntradas()
    Public ObjfrmConsFor As New frmConsFor()

End Module

Bem é isso! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Como antigo "Vb6zista" declaro: Aprofundemo-nos nos conceitos de OO, pois quem não evolui pára no tempo.(E fica sem emprego, rsrs)

 

Abraço a todos

Att,

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.