DESCOBRIR QUAL FORMULARIO ME CHAMOU

LEONARDOSILVEIR 21/11/2010 22:07:43
#357938
Pessoal tenho um formulario utilizado para pesquisar meu cadastro de fornecedores, esse formulario é chamado por diversos outros formularios, o meu problema é: saber qual formulario chamou a pesquisa para que eu possa transportar os valores da pesquisa para o form que o chamou.

tks.
TECLA 21/11/2010 22:58:22
#357939
Pensemos em um cenário, onde o FORM1 é o formulário que irá [Ô]chamar[Ô] o FORM2, e este último terá que identificar [Ô]quem o chamou[Ô].

1. No FORM2, crie uma propriedade do tipo FORM para armazenar um objeto referente ao FORM1.
Exemplo:

Public Class Form2

Private _formOrigem As Form
Public Property FormOrigem() As Form
Get
Return _formOrigem
End Get
Set(ByVal value As Form)
_formOrigem = value
End Set
End Property

End Class


2. No FORM1, antes de [Ô]chamar[Ô] o FORM2, atribua o valor a propriedade recém-criada, para que lá na frente o FORM2 possa reconhecer que o solicitou.
Exemplo:

Dim frm As New Form2
frm.FormOrigem = Me
frm.Show()


3. Para mostrar o nome do FORM que o [Ô]chamou[Ô], é mui simples...
MessageBox.Show(_formOrigem.Name)


Esta é uma solução possível, mas existem inúmeras outras.
LEONARDOSILVEIR 21/11/2010 23:26:54
#357940
Valeu Tecla, consegui pegar o nome do formulario, agora surgiu outro problema, quando eu dou um duplo click no gridview do segundo formulario (Pesquisa Fornecedores), eu preciso carregar a informação para o formulario que o chamou no caso o _formOrigem.Name. Para fazer isso eu utilizava o seguindo codigo:

FORM_CADASTRO_CONTRATOS.Text.ID_FORNECEDOR.Text = Me.dgvPesquisar.CurrentRow.Cells(0).Value.ToString

Substituindo o nome do formulario pelo valor que buscamos no _formOrigem.Name deveria ficar mais ou menos assim:

_formOrigem.Name.Text.ID_FORNECEDOR.Text = Me.dgvPesquisar.CurrentRow.Cells(0).Value.ToString

Porém dá o erro abaixo:
Error 1 [ô]ID_FORNECEDOR[ô] is not a member of [ô]String[ô].

Consegue me ajudar?
RODRIGOFERRO 21/11/2010 23:56:57
#357942
Resposta escolhida
_formOrigem.Text.ID_FORNECEDOR.Text = Me.dgvPesquisar.CurrentRow.Cells(0).Value.ToString

Tente tirar o [Ô]name[Ô], pois se colocar o name estaras puxando o nome do form..
LEONARDOSILVEIR 22/11/2010 00:16:46
#357944
Não deu certo! Alguma outra ideia?
RODRIGOFERRO 22/11/2010 08:07:45
#357946
Opa desculpa deve ser o sono, a sintaxe é a seguinte, Formulario.Controle.Propriedade entao logo tente assim..

_formOrigem.ID_FORNECEDOR.Text = Me.dgvPesquisar.CurrentRow.Cells(0).Value.ToString

eu deixei um Text ali sem querer, abraços.
LEONARDOSILVEIR 22/11/2010 19:12:08
#357996
Ainda continua dando erro: o programa nao entende que o ID_FORNECEDOR.TEXT refere-se a um capo do formulario onde o resultado irá ser preenchido, cujo nome dentro da variavel [Ô]_formOrigem[Ô], veja abaixo:

Error 1 [ô]ID_FORNECEDOR[ô] is not a member of [ô]System.Windows.Forms.Form[ô]. 82 9 CRecFiscal
RODRIGOFERRO 22/11/2010 20:25:10
#358001

_formOrigem.Controls([Ô]ID_FORNECEDOR[Ô]).Text = Me.dgvPesquisar.CurrentRow.Cells(0).Value.ToString
me.Close


manda bala acabei de testar aqui, ai no caso se voce quizer ficar chutando o nome do controle que vai receber, crie outra Propriedade e passe o nome do controle que ira receber o valor...

Abraços
LEONARDOSILVEIR 22/11/2010 20:48:03
#358003
Zerocal, agradeço pela sua atenção, esse codigo ta me dando trabalho, veja que ainda nao funcionou, disponibilizei o print do erro em anexo que ocorre ao rodar o programa.

Referência de objeto não definida para uma instância de um objeto.
RODRIGOFERRO 22/11/2010 23:08:14
#358014
Segue em anexo o Projetim que to usando aqui, tu deve ta passando algum nome errado ai.

LEONARDOSILVEIR 28/11/2010 22:18:29
#358373
Fiz justamente assim como está no seu projeto, e ainda continua dando um erro, e o valor nao passa. veja abaixo o print do erro que está ocorrendo.
Página 1 de 2 [12 registro(s)]
Tópico encerrado , respostas não são mais permitidas