FUNCTION
Dim Frm2 As Registos
If IsNothing(Frm2) = False Then
If Registos.Text = [Ô]Registo de Paises[Ô] Then
[ô]o formulário esta ativo
Frm2.ShowDialog()
Else
Frm2 = New Registos()
Frm2.Show()
End If
da forma que colocaste agora nao abre nada, nem da erro
Ola pessoal gostaria de postar aqui o meu projecto mas não consigo porque ele tem quase 5 mb, como posso fazer para posta-lo em algum lugar para que você possam vê-lo e ajudar-me
Caro JOHNHEY
Este projeto que está desenvolvnedo necessita de Classes mais adequadas para DAL, BAL, UI (conceitos de camadas) para tratar o conteudo de cada variável e retorna para outro objeto e ser possivel enviar e receber dados atraves de variáveis internas utilizando os conceitos de herança OOP(Orientação de objetos) e o mais importante que é o conceito de camadas customizando assim seu desenvolvimento reduzindo muitas linhas repetidas de programação.
Boa sorte
Este projeto que está desenvolvnedo necessita de Classes mais adequadas para DAL, BAL, UI (conceitos de camadas) para tratar o conteudo de cada variável e retorna para outro objeto e ser possivel enviar e receber dados atraves de variáveis internas utilizando os conceitos de herança OOP(Orientação de objetos) e o mais importante que é o conceito de camadas customizando assim seu desenvolvimento reduzindo muitas linhas repetidas de programação.
Boa sorte
Mas ele tem esse tamanho devido ao banco de bados, se puder me ajudar, e tiver algum msn por favor me adicione que lhe envio meu projecto para dar um vista de olhos. johnhey_sp@hotmail.com
Será que isso só acontece comigo? ninguem tem problemas em passar dados de formfilho para outro formfilho.
Caso possam me envie o vosso email que envio o meu projecto.
Atenciosamente
John Trindade
Caso possam me envie o vosso email que envio o meu projecto.
Atenciosamente
John Trindade
O Projecto anterior não estava a complicar pois tive que retirar alguns arquivos, este agora esta completo, por favor me ajudem.
Quando executares dê dois cliques sobre qualquer pais e veja que os valores não são devolvidos no form
Quando executares dê dois cliques sobre qualquer pais e veja que os valores não são devolvidos no form
testei conforme um amigo daqui do vbmania orientou, com o msgbox e me retornou o valor, só que no form não aparece nada.
Boas pessoas, a tempos coloquei esse tópico e até o momento sem resposta que desse certo. agora venho tentar explicar melhor e pedir a vossa ajuda.
Como mencionei em algumas duvidas aqui postadas, tenho um projecto com um único form.
O mesmo utilizo para (Cliente, empresa, Produtos, etc...)
Tenho uma variavel que me diz qual o form que esta aberto para poder funcionar os botoes nos seus devidos lugares.
Para abrir o form utilizo os seguintes codigos:
Private Sub PaisToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PaisToolStripMenuItem.Click
Try
[ô]Verifica se o form já esta aberto e traz para frente
For Each child In Me.MdiChildren
If TypeOf child Is Registos Then
If child.Text = [Ô]Registo de Paises[Ô] Then
child.WindowState = FormWindowState.Normal
child.Focus()
tabela = [Ô]TBPais[Ô]
Exit Sub
End If
End If
Next
[ô]caso não esteja aberto ele abre
Dim frm As New Registos
frm.MdiParent = Me
variaveldcf = [Ô]Registo de Paises[Ô] [ô] atribui um valor a variavel
frm.Show()
tabela = [Ô]TBPais[Ô]
[ô]Se der erro exibe o erro
Catch EX As Exception
MsgBox([Ô]erro - [Ô] + EX.Message)
End Try
End Sub
Neste formulário tem um botão de procurar que abre o formulário de pesquisa
no botão de procurar tenho os seguintes códigos:
Private Sub Procurar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Procurar.Click
Try
Select Case variaveldcf
Case [Ô]Registo de Paises[Ô]
Try
[ô]Verifica se o form já esta aberto e traz para frente
For Each child In Principal.MdiChildren
If TypeOf child Is Pesquisa Then
child.WindowState = FormWindowState.Normal
child.Focus()
Exit Sub
End If
Next
[ô]caso não esteja aberto ele abre
Dim frm As New Pesquisa
frm.MdiParent = Principal
frm.Top = [Ô]232[Ô]
frm.Left = [Ô]970[Ô]
frm.Text = [Ô]Pesquisar...[Ô]
frm.Show()
[ô]Se der erro exibe o erro
Catch EX As Exception
MsgBox([Ô]erro - [Ô] + EX.Message)
End Try
Case [Ô]Registo de Ruas[Ô]
(....)
End Select
Catch EX As Exception
MsgBox([Ô]erro - [Ô] + EX.Message)
End Try
End Sub
O formulário de pesquisa esta a funcionar correctamente, o problema esta aqui, quando dou dois cliques sobre o registo que gostaria de visualizar ou alterar que estão relacionados no dbgrid, o mesmo deveria ser retornados para o primeiro formulário, só que não retorna nada.
já fiz um msgbox para ver se esta a funcionar, e esta correcto.
no dbgrid tenho:
Private Sub DGPesquisa_MouseDoubleClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles DGPesquisa.MouseDoubleClick
[ô]Seleciona dados no datagrid com um duplo click
regpais = DGPesquisa.CurrentRow.Cells(0).Value
Nomepaistxt = DGPesquisa.CurrentRow.Cells(1).Value
Me.dispose()
End Sub
também já tentei colocar nos seguintes eventos.
CellDoubleClick, cellmousedoubleclick, doubleclick e não retorna.
Caso tenham duvidas, vejam o video e se for preciso envio o projecto.
1º Video
http://youtu.be/_vjnWTfPahA
2º Video
http://youtu.be/0y6rknD83JI
Não da nenhum erro, já tentei criar uma function a para jogar os dados e nada.
fiz um breakpoint e é como se o sistema já estivesse passado por todas as linhas de comando.
somente quando deixo de usar como form pai e filho que funciona.
Ao invés de abrir o form assim:
Dim frm As New Registos
frm.MdiParent = Me
variaveldcf = [Ô]Registo de Paises[Ô] [ô] atribui um valor a variavel
frm.Show()
tabela = [Ô]TBPais[Ô]
Abri-lo assim:
frmregisto.show()
Só que ai terei que fazer um form para cada tela de cadastro.
Isso não deixa o sistema pesado?
Também existe outro problema quando abro outro sistema qualquer e volto no que estava aberto os form não estão todos dentro do mdiprincipal terei que clicar na barra de tarefa para ver quais estão aberto.
E para alternar entre um form e outro também terei que deslocar me na barra de tarefas.
Como mencionei em algumas duvidas aqui postadas, tenho um projecto com um único form.
O mesmo utilizo para (Cliente, empresa, Produtos, etc...)
Tenho uma variavel que me diz qual o form que esta aberto para poder funcionar os botoes nos seus devidos lugares.
Para abrir o form utilizo os seguintes codigos:
Private Sub PaisToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PaisToolStripMenuItem.Click
Try
[ô]Verifica se o form já esta aberto e traz para frente
For Each child In Me.MdiChildren
If TypeOf child Is Registos Then
If child.Text = [Ô]Registo de Paises[Ô] Then
child.WindowState = FormWindowState.Normal
child.Focus()
tabela = [Ô]TBPais[Ô]
Exit Sub
End If
End If
Next
[ô]caso não esteja aberto ele abre
Dim frm As New Registos
frm.MdiParent = Me
variaveldcf = [Ô]Registo de Paises[Ô] [ô] atribui um valor a variavel
frm.Show()
tabela = [Ô]TBPais[Ô]
[ô]Se der erro exibe o erro
Catch EX As Exception
MsgBox([Ô]erro - [Ô] + EX.Message)
End Try
End Sub
Neste formulário tem um botão de procurar que abre o formulário de pesquisa
no botão de procurar tenho os seguintes códigos:
Private Sub Procurar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Procurar.Click
Try
Select Case variaveldcf
Case [Ô]Registo de Paises[Ô]
Try
[ô]Verifica se o form já esta aberto e traz para frente
For Each child In Principal.MdiChildren
If TypeOf child Is Pesquisa Then
child.WindowState = FormWindowState.Normal
child.Focus()
Exit Sub
End If
Next
[ô]caso não esteja aberto ele abre
Dim frm As New Pesquisa
frm.MdiParent = Principal
frm.Top = [Ô]232[Ô]
frm.Left = [Ô]970[Ô]
frm.Text = [Ô]Pesquisar...[Ô]
frm.Show()
[ô]Se der erro exibe o erro
Catch EX As Exception
MsgBox([Ô]erro - [Ô] + EX.Message)
End Try
Case [Ô]Registo de Ruas[Ô]
(....)
End Select
Catch EX As Exception
MsgBox([Ô]erro - [Ô] + EX.Message)
End Try
End Sub
O formulário de pesquisa esta a funcionar correctamente, o problema esta aqui, quando dou dois cliques sobre o registo que gostaria de visualizar ou alterar que estão relacionados no dbgrid, o mesmo deveria ser retornados para o primeiro formulário, só que não retorna nada.
já fiz um msgbox para ver se esta a funcionar, e esta correcto.
no dbgrid tenho:
Private Sub DGPesquisa_MouseDoubleClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles DGPesquisa.MouseDoubleClick
[ô]Seleciona dados no datagrid com um duplo click
regpais = DGPesquisa.CurrentRow.Cells(0).Value
Nomepaistxt = DGPesquisa.CurrentRow.Cells(1).Value
Me.dispose()
End Sub
também já tentei colocar nos seguintes eventos.
CellDoubleClick, cellmousedoubleclick, doubleclick e não retorna.
Caso tenham duvidas, vejam o video e se for preciso envio o projecto.
1º Video
http://youtu.be/_vjnWTfPahA
2º Video
http://youtu.be/0y6rknD83JI
Não da nenhum erro, já tentei criar uma function a para jogar os dados e nada.
fiz um breakpoint e é como se o sistema já estivesse passado por todas as linhas de comando.
somente quando deixo de usar como form pai e filho que funciona.
Ao invés de abrir o form assim:
Dim frm As New Registos
frm.MdiParent = Me
variaveldcf = [Ô]Registo de Paises[Ô] [ô] atribui um valor a variavel
frm.Show()
tabela = [Ô]TBPais[Ô]
Abri-lo assim:
frmregisto.show()
Só que ai terei que fazer um form para cada tela de cadastro.
Isso não deixa o sistema pesado?
Também existe outro problema quando abro outro sistema qualquer e volto no que estava aberto os form não estão todos dentro do mdiprincipal terei que clicar na barra de tarefa para ver quais estão aberto.
E para alternar entre um form e outro também terei que deslocar me na barra de tarefas.
Ok, consegui resolver da seguinte forma:
Em uma Modulo criei:
No formulário de Pesquisa (Datagrid) no evento Celldoubleclick:
GERAL é o nome que dei ao meu Modulo
E no formulário que será visualizado os dados coloquei um timer com o seguinte:
Em uma Modulo criei:
Public <Registo> As String [ô]Cria a variável que carregara o numero do registo
Public <Nomepais> As String [ô] Cria a variável que carregara o nome do pais
Public timer As Integer
No formulário de Pesquisa (Datagrid) no evento Celldoubleclick:
GERAL é o nome que dei ao meu Modulo
Try
If geral.timer = 1 Then
geral.index = DGPesquisa.CurrentRow.Cells(0).Value
geral.regpais = DGPesquisa.CurrentRow.Cells(1).Value
geral.nomepais = DGPesquisa.CurrentRow.Cells(2).Value
Else
geral.index = DGPesquisa.CurrentRow.Cells(0).Value
geral.regpais = DGPesquisa.CurrentRow.Cells(1).Value
geral.nomepais = DGPesquisa.CurrentRow.Cells(2).Value
geral.timer = 1
End If
Me.Dispose()
Catch EX As Exception
MsgBox([Ô]erro - [Ô] + EX.Message)
End Try
E no formulário que será visualizado os dados coloquei um timer com o seguinte:
If geral.timer = 1 Then
txtregisto.Text = geral.regpais
txtnome.Text = geral.nomepais
geral.timer = 0
Else
Exit Sub
End If
Tópico encerrado , respostas não são mais permitidas