Jump to content
sfapereira

Formularios

Recommended Posts

sfapereira

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

Share this post


Link to post
Share on other sites
legd1991

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

Share this post


Link to post
Share on other sites
kazzx

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?

Share this post


Link to post
Share on other sites
ribeiro55

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.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
paulo silva

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

Share this post


Link to post
Share on other sites
sfapereira

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

Share this post


Link to post
Share on other sites
ribeiro55

O ShowDialog é isso mesmo.

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


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
kazzx

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

 nomedoform.showdialog 

é isso? vê!

Share this post


Link to post
Share on other sites
sfapereira

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:

Share this post


Link to post
Share on other sites
paulo silva

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

Share this post


Link to post
Share on other sites
kazzx

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?  🤔

Share this post


Link to post
Share on other sites
sfapereira

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?  🤔

vou testar e digo-vos logo!

Agradecido

Abraço e bom fds

SP

Share this post


Link to post
Share on other sites
ribeiro55

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


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
sfapereira

Boas Ribeiro55,

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

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:

Share this post


Link to post
Share on other sites
ribeiro55

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.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
sfapereira

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

Share this post


Link to post
Share on other sites
kazzx

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.

Share this post


Link to post
Share on other sites
ribeiro55

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ê :) :)


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.