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

sfapereira

Formularios

19 mensagens neste tópico

Boas Pessoal!

Gostaria de saber se me podiam ajudar:

Tenho um Form com uma serie de campos que vai buscar informação à BD,onde existe um botão,que depois de clicado, surge outro Form servindo de calculo de alguns dos dados do form anterior.

isto se calhar não esta muito claro..mas a ideia seria bloquear todos os campos  do 1º form e surgir um segundo Form (editavel) . Quando quisesse voltar a tras (com o btn por exemplo) o primeiro Form iria surgir como se nada fosse fechando-se o segundo..

Acham isto perceptivel/possivel?? Sou um cado leigo no campo da programação...

Abraço a todos e obrigado

SP

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes..

no Button_click podes por:

textbox1.enabled = False
textbox2.enabled = false

dim form as new form1

form.showdialog()

depois ao fechares o form nalgum botao metes o codigo:

nomedoformanterior.textbox1.enabled=true

nomedoformanterior.textbox2.enabled=true

e assim continuadamente...

espero ter ajudado

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tu queres é ter um formulário com vários objectos/campos e um botão.

no click do botão fazer aparecer outro form.

e ao fechares esse segundo form, voltar ao primeiro tal como se tivesses iniciado o programa.

é isso?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se percebi bem, o ShowDialog resolve-te o problema, pois abre o form Modal, ou seja, a execução de código no form de chamada fica estanque e só retoma quando o form modal for fechado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Também podes optar por fazer me.hide() e em seguida o form que vais abrir, o form que escondeste não perde os valores que contiver.

Cumprimentos Paulo Silva

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Desde já o meu obrigado às vossas respostas/sugestões..

A ideia seria continuar com o form inicial com todos os campos/botoes não editaveis (ficava em background, mas visivel) e o outro surgiria como um popup no qual poderia mexer. Assim que sai deste o que estava por detrás ficaria de novo com os valores e editável..

A questão do me.hide() é o que tenho e ele faz a troca de forms que quando volto atras perco toda a informação (isso já é outra guerra..). Mas a ideia original seria mesmo a que expliquei acima.

A função showdialog posso testar, primeiro tenho de ver como posso implementar isso no meu projecto..posso aplicar o modelo apresentado pelo legd1991

Muito obrigado a todos e volto a dar novas assim que surgir oportunidade e razões para tal!

Abraço

SP

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O ShowDialog é isso mesmo.

É tão simples como trocares onde tens Form.Show para Form.ShowDialog

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ok, então é fazeres uma coisa como colocar no evento click do botão que irá abrir esse form.

 nomedoform.showdialog 

é isso? vê!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ok, então é fazeres uma coisa como colocar no evento click do botão que irá abrir esse form.

 nomedoform.showdialog 

é isso? vê!

Certo...mas não me "tranca" o formulário que fica por detrás e quando faço voltar abre-me um novo e sem nada... :confused:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

acho que fazendo assim me.enabled=false no momento em que abres o outro form funciona, depois ao fazeres voltar fazes, me.close e nomedoform.show e nomedoform.enabled=true

nao sei se isto funciona só estou a tentar passar o raciocinio

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não tranca e o form principal aparece sem nada se colocares o

 .showdialog 

no evento click do botão que abre o segundo form?  :hmm:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não tranca e o form principal aparece sem nada se colocares o

 .showdialog 

no evento click do botão que abre o segundo form?  :hmm:

vou testar e digo-vos logo!

Agradecido

Abraço e bom fds

SP

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não "tranca" visivelmente. Mas tenta mexer-lhe e vais ver o que acontece.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas Ribeiro55,

realmente não consigo mexer-lhe, está porreiro, mas quando faço voltar fecha-me todos os forms..  :rant_01:

eu vou deixar-vos o codigo dos dois forms

Form Principal:

        If objfrmRecibo Is Nothing Then
            objfrmRecibo = New frmRecibo
            objfrmRecibo.Owner = Me
        End If
        objfrmRecibo.ShowDialog()
        Me.Hide()

Form Secundario:

       If objFuncionario Is Nothing Then
            objFuncionario = New frmFuncionario
            objFuncionario.Owner = Me
        End If
        objFuncionario.Show()
        Me.Close()

Possivelmente alguma barbaridade...  :bored:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ou é da hora, ou não estou a perceber bem o que queres fazer...

O form principal chama o secundário com um simples ShowDialog. O form secundário só tem de ser fechado para que o principal volte a ficar acessível.

Não há truques com Hides, Closes ou lá o que seja.

Se queres que o form principal desapareça simplesmente, mostrando o segundo, e que fechando o segundo re-apareça o principal, joga com visibilidades apenas (Visible=True / False) e usa Show.

Só tens de ter cuidado em dar um FormPrincipal.Visible=True no evento FormClosing do secundário.

Se estás a criar instâncias novas, é tudo reinicializado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Brutal Sergio Ribeiro!

Esta resolvido, realmente não fazia sentido o que estava a fazer! Deixo aqui o codido alterado de ambos os forms!

Form Principal:

        If objfrmRecibo Is Nothing Then
            objfrmRecibo = New frmRecibo
            objfrmRecibo.Owner = Me
        End If
        objfrmRecibo.ShowDialog()

Form Secundario:

        Me.Close() 

Obrigado mais uma vez a todos pela ajuda!!

Grande abraço e bom resto de fds

SP

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

só um comentário se me permites, em vez de usares esse 'Hide' e 'Close' e todo esse código, experimenta apagar isso tudo e colocar apenas no botão que abre o segundo formulário o tal

 .showdialog 

e nada mais, não coloques mais nada em lado nenhum.

depois diz alguma coisa.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O form principal chama o secundário com um simples ShowDialog. O form secundário só tem de ser fechado para que o principal volte a ficar acessível.

Não há truques com Hides, Closes ou lá o que seja.

Esta resolvido, realmente não fazia sentido o que estava a fazer! Deixo aqui o codido alterado de ambos os forms!

Form Principal:

        If objfrmRecibo Is Nothing Then
            objfrmRecibo = New frmRecibo
            objfrmRecibo.Owner = Me
        End If
        objfrmRecibo.ShowDialog()

Form Secundario:

        Me.Close() 

Só um comentário, se me permites: lê :) :)

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