DESCOBRIR QUAL FORMULARIO ME CHAMOU
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.
tks.
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:
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:
3. Para mostrar o nome do FORM que o [Ô]chamou[Ô], é mui simples...
Esta é uma solução possÃvel, mas existem inúmeras outras.
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.
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?
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?
_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..
Tente tirar o [Ô]name[Ô], pois se colocar o name estaras puxando o nome do form..
Não deu certo! Alguma outra ideia?
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.
_formOrigem.ID_FORNECEDOR.Text = Me.dgvPesquisar.CurrentRow.Cells(0).Value.ToString
eu deixei um Text ali sem querer, abraços.
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
Error 1 [ô]ID_FORNECEDOR[ô] is not a member of [ô]System.Windows.Forms.Form[ô]. 82 9 CRecFiscal
_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
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.
Referência de objeto não definida para uma instância de um objeto.
Segue em anexo o Projetim que to usando aqui, tu deve ta passando algum nome errado ai.
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.
Tópico encerrado , respostas não são mais permitidas