• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

almamater

[RESOLVIDO] Definições entre Forms

16 mensagens neste tópico

Olá.

Tenho 2 Forms e qdo estou no 1º para chamar o 2 faço isto:

 Dim FrmSearch As New FrmPesquisa
        FrmSearch.Show()
       Me.WindowState = FormWindowState.Minimized

Até aqui tudo bem.. o problema é quando fecho o Form2 e quero alterar o Windowstate do Form1 para normal e não dá..:

 Dim FrmForm1 As New Frm1
        FrmForm1 .WindowState = FormWindowState.Normal
        Me.Close()

se fizer  FrmForm1.show ele abre mais um formulário igual e fico com 2 abertos...

Tenho forma de fazer isto? é pq o Form1 tem dados já escritos pelo utilizador e queria manter/mostrar os mesmos qdo se fecha o Form2.

Será que tenho de recorrer a um Timer e aos processos do windows para ver qdo se fecha a janela do form2?

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Porque não abres a nova janela como Dialog ?

Dim FrmSearch As New FrmPesquisa
FrmSearch.ShowDialog()

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Porque não abres a nova janela como Dialog ?

Dim FrmSearch As New FrmPesquisa
FrmSearch.ShowDialog()

Sim tb já fiz isso mas ele limpa as combobox e restantes qdo faço isso... e o meu objectivo é recuperar o Form1 mantendo tudo como estava!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Limpa ?!? Tens de explicar isso melhor e mostrares como tentaste.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Humm ok.. se puderes vê isto então: Ficheiro

Secalhar estou a fazer algo de errado...  mas selecciona uma opção na combobox e escreve algo no textbox e carrega no botão.. depois qdo volta a abrir dessa forma que dizes (showdialog) os campos estão todos limpos..

Thanks

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Porque não abres a nova janela como Dialog ?

Dim FrmSearch As New FrmPesquisa
FrmSearch.ShowDialog()

Não pode ser dessa maneira pq assim estou a criar um novo Form (Dim FrmSearch As New FrmPesquisa) eu de alguma forma tenho de ir buscar as propriedades do form que já está criado e minimizado.. apenas para alterar o seu WindowsState

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não pode ser dessa maneira pq assim estou a criar um novo Form (Dim FrmSearch As New FrmPesquisa) eu de alguma forma tenho de ir buscar as propriedades do form que já está criado e minimizado.. apenas para alterar o seu WindowsState

Desculpa não consigo abrir o ficheiro onde estou ... podes enviar-me por email ? (vê o email no meu blog)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok, o problema é que tu estás a criar uma nova instância do Form1, e não a alterar as propriedades (neste caso WindowState ), do que já está aberto.

Crias o novo Form:

        Dim Form2 As New Form2
        Me.WindowState = FormWindowState.Minimized
        Form2.Show()

Depois podes utiliza o My Namespace, no Form2, para alterar a propriedade WindowState para normal :

        Dim form1 As Form1 = My.Forms.Form1
        form1.WindowState = FormWindowState.Normal
        Me.Close()

Vê lá se funciona agora ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok, o problema é que tu estás a criar uma nova instância do Form1, e não a alterar as propriedades (neste caso WindowState ), do que já está aberto.

Crias o novo Form:

        Dim Form2 As New Form2
        Me.WindowState = FormWindowState.Minimized
        Form2.Show()

Depois podes utiliza o My Namespace, no Form2, para alterar a propriedade WindowState para normal :

        Dim form1 As Form1 = My.Forms.Form1
        form1.WindowState = FormWindowState.Normal
        Me.Close()

Vê lá se funciona agora ;)

:P Por acaso ainda não.. estou a usar o VB2008 enão me aceita o My.Forms..

Descobri esta página: http://www.devcity.net/Articles/94/1/.aspx e no tópico  "Method 7: Flip-Flop Form1 and Form2" acho que devia de resolver o meu problema mas tb n deu..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quando fazes para abrir o segundo form fazes:

        Dim Form2 As New Form2

        Me.hide()

        Form2.Show()

Quando sais do form2, fazes:

        Dim form1 As Form1 = My.Forms.Form1

        form1.show()

        Me.Close()

Será que ajuda ? :s

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quando fazes para abrir o segundo form fazes:

        Dim Form2 As New Form2

        Me.hide()

        Form2.Show()

Quando sais do form2, fazes:

        Dim form1 As Form1 = My.Forms.Form1

        form1.show()

        Me.Close()

Será que ajuda ? :s

Nops:

err.th.png

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nops:

err.th.png

Tira essa linha de código, só tens o form 1 escondido, nao o precisas de declarar..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mostra lá o código todo. Eu alterei o exemplo que mostraste e está a funcionar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok obrigado pelas dicas... ainda estou com o erro "Forms is not a member of 'My' no projecto onde quero implementar isso...

na realidade no exemplo que meti aqui funciona 5*.. vou tentar decifrar esta! Num funciona noutro nao  :mad:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Resolvido ;)

Obrigado!

A questão estava associada ao Startup do projecto.. tinha escolhido para inciar num módulo e estava como "Windows Service" e não "Windows Forms Application"  :nono1:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Põe o tópico como resolvido, acrescenta no início do título do mesmo :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora