zephirus Posted September 29, 2009 at 10:11 PM Report Share #289263 Posted September 29, 2009 at 10:11 PM Olá a todos, Na minha aplicação, quando a inicío, além de aparecer a janela principal, aparece de imediato uma outra que serve para o login de users. Quando o user insere os dados pela primeira vez, é pedido que mude a sua password. Para isso, uma outra janela surge no ecrão. Eu quero que ao aparecer essa nova janela, a de login seja fechada mas não estou a conseguir. O meu código é algo do género: Sub Btn_OkClick(sender As Object, e As EventArgs) Select Case CheckIfPasswordIsDefault(txt_username.Text.Replace("'", "").Trim()) Case = 1 oldpassword = txt_password.Text.Replace("'", "").Trim() Me.Close() ChangePassword.ShowDialog() Case = 0 ' Faz login do user End Select Apesar de eu utilizar o "Me.Close()", a janela de login não fecha. Penso que tem a ver com o uso do Select Case mas não estou a ver alternativa. Alguém pode ajudar? Link to comment Share on other sites More sharing options...
zephirus Posted September 30, 2009 at 01:30 PM Author Report Share #289318 Posted September 30, 2009 at 01:30 PM Além do Select Case, posso usar outro tipo de abordagem para o que pretendo? Link to comment Share on other sites More sharing options...
vbtipo Posted September 30, 2009 at 06:16 PM Report Share #289368 Posted September 30, 2009 at 06:16 PM Olá a todos, Na minha aplicação, quando a inicío, além de aparecer a janela principal, aparece de imediato uma outra que serve para o login de users. Quando o user insere os dados pela primeira vez, é pedido que mude a sua password. Para isso, uma outra janela surge no ecrão. Eu quero que ao aparecer essa nova janela, a de login seja fechada mas não estou a conseguir. O meu código é algo do género: Sub Btn_OkClick(sender As Object, e As EventArgs) Select Case CheckIfPasswordIsDefault(txt_username.Text.Replace("'", "").Trim()) Case = 1 oldpassword = txt_password.Text.Replace("'", "").Trim() Me.Close() ChangePassword.ShowDialog() Case = 0 ' Faz login do user End Select Apesar de eu utilizar o "Me.Close()", a janela de login não fecha. Penso que tem a ver com o uso do Select Case mas não estou a ver alternativa. Alguém pode ajudar? Podes utilizar a função if Sub Btn_OkClick(sender As Object, e As EventArgs) If CheckIfPasswordIsDefault(txt_username.Text.Replace("'", "").Trim())=1 then oldpassword = txt_password.Text.Replace("'", "").Trim() Me.Close() ChangePassword.ShowDialog() else ' Faz login do user End if end sub Para fechares essa janela invés de utilizares o me.close utilizar unload nome da form Lema: Se eu não saber de alguma coisa não se preocupem porque tento sempre ajudar alguma coisita, nem que seja, por palpites/sugestões. Link to comment Share on other sites More sharing options...
zephirus Posted September 30, 2009 at 06:30 PM Author Report Share #289372 Posted September 30, 2009 at 06:30 PM Pois mas isso também não me fecha a janela antes de exibir a nova. Não estou mesmo a perceber. Link to comment Share on other sites More sharing options...
Pwyll Posted September 30, 2009 at 09:17 PM Report Share #289411 Posted September 30, 2009 at 09:17 PM Quem é que esta a chamar a Sub Btn_OkClick ? Por acaso o programa executará a linha changepassword.showdialog() alguma vez? E será que a linha Me.Close() é executada? Link to comment Share on other sites More sharing options...
bruno1234 Posted September 30, 2009 at 09:26 PM Report Share #289412 Posted September 30, 2009 at 09:26 PM Estás a tentar fechar a form q está dentro do Application.Run(new Form()) ? Essa form se for fechada a execução do programa termina. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos Link to comment Share on other sites More sharing options...
zephirus Posted September 30, 2009 at 10:15 PM Author Report Share #289425 Posted September 30, 2009 at 10:15 PM Quem é que esta a chamar a Sub Btn_OkClick ? Por acaso o programa executará a linha changepassword.showdialog() alguma vez? E será que a linha Me.Close() é executada? Eu tenho a MainForm visível e o Btn_OKClick é executado quando carrego num botão de outra form. Quando faço isso, ele mostra a form 'changepassword', ou sejam essa linha é de facto executada. A do close é que não. Estás a tentar fechar a form q está dentro do Application.Run(new Form()) ? Essa form se for fechada a execução do programa termina. A form que estou a fechar não é essa, é outra. Link to comment Share on other sites More sharing options...
heldercorreia Posted September 30, 2009 at 10:55 PM Report Share #289430 Posted September 30, 2009 at 10:55 PM Experimenta Me.hide ou ao form que pretendes ocultar .hide Link to comment Share on other sites More sharing options...
zephirus Posted September 30, 2009 at 11:09 PM Author Report Share #289432 Posted September 30, 2009 at 11:09 PM Experimenta Me.hide ou ao form que pretendes ocultar .hide Pois... também não dá. Estou a deseperar porque isto é um pequeno detalhe mas que precisava mesmo de implementar. Link to comment Share on other sites More sharing options...
jpaulino Posted September 30, 2009 at 11:17 PM Report Share #289433 Posted September 30, 2009 at 11:17 PM E porque não mostras uma janela de login, e só depois a principal ? Se for necessário mostrares a de alteração de password, fazer-o antes de mostrar a principal. Link to comment Share on other sites More sharing options...
zephirus Posted September 30, 2009 at 11:22 PM Author Report Share #289436 Posted September 30, 2009 at 11:22 PM E porque não mostras uma janela de login, e só depois a principal ? Se for necessário mostrares a de alteração de password, fazer-o antes de mostrar a principal. O problema manter-se-ia, creio. De qualquer forma, eu quero ter a main window em fundo, mostrar a de login e se for caso para mostrar a de mudar a password, a de login tem de fechar. Acrescento ainda que se eu cancelar a mudança da password, a de login tem de aparecer de novo. Todas as janelas menos a Main são mostradas como dialog. Link to comment Share on other sites More sharing options...
jpaulino Posted September 30, 2009 at 11:30 PM Report Share #289438 Posted September 30, 2009 at 11:30 PM Ok, tu é que defines como queres que trabalhe 🙂 Quando fazes o Me.Close() tens o form principal por trás (aberto) ? Se sim, isto deve chegar: My Project - Application Tab e no Shutdown Mode seleccionas: "When last form closes". Link to comment Share on other sites More sharing options...
zephirus Posted September 30, 2009 at 11:36 PM Author Report Share #289439 Posted September 30, 2009 at 11:36 PM Ok, tu é que defines como queres que trabalhe 🙂 Quando fazes o Me.Close() tens o form principal por trás (aberto) ? Se sim, isto deve chegar: My Project - Application Tab e no Shutdown Mode seleccionas: "When last form closes". Hmm, não estou no visual studio. Se bem percebo isso é uma opção do visual studio e não da form, correcto? EDIT: já vi que sim. Link to comment Share on other sites More sharing options...
zephirus Posted September 30, 2009 at 11:40 PM Author Report Share #289442 Posted September 30, 2009 at 11:40 PM Bem, pensei que isto fosse fácil. Na volta vou tentar outra abordagem. Link to comment Share on other sites More sharing options...
jpaulino Posted September 30, 2009 at 11:40 PM Report Share #289443 Posted September 30, 2009 at 11:40 PM Humm, assim é mais dificil! No ficheiro Application.Designer.vb tenta alterar o ShutDownStyle Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterAllFormsClose Link to comment Share on other sites More sharing options...
zephirus Posted September 30, 2009 at 11:44 PM Author Report Share #289444 Posted September 30, 2009 at 11:44 PM Humm, assim é mais dificil! No ficheiro Application.Designer.vb tenta alterar o ShutDownStyle Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterAllFormsClose Ok, já mudei mas o problema mantém-se. Vou por aqui parte do código: Sub Btn_OkClick(sender As Object, e As EventArgs) Select Case (String.IsNullOrEmpty(txt_username.Text.Replace("'", "").Trim()) Or String.IsNullOrEmpty(txt_password.Text.Replace("'", "").Trim())) Case True MsgBox("All fields are required.", MsgBoxStyle.Critical, "Incomplete fields") Case False btn_Ok.Enabled = False btn_Exit.Enabled = False CheckUserData("checkUserNameAndPassword", txt_username.Text.Replace("'", "").Trim(), GenerateHash(txt_password.Text)) Select Case exists Case = True username = txt_username.Text.Replace("'", "").Trim() CheckIfPasswordIsDefault(txt_username.Text.Replace("'", "").Trim()) Select Case defaultpassword Case = 1 Me.Close() oldpassword = txt_password.Text.Replace("'", "").Trim() Me.Close() ChangePassword.ShowDialog() Case = 0 ..... Link to comment Share on other sites More sharing options...
jpaulino Posted September 30, 2009 at 11:47 PM Report Share #289445 Posted September 30, 2009 at 11:47 PM Então não estou a entender ... qual é o form que fechas e qual é problema mesmo. Tenta lá explicar isso melhor. Link to comment Share on other sites More sharing options...
zephirus Posted September 30, 2009 at 11:51 PM Author Report Share #289446 Posted September 30, 2009 at 11:51 PM Então não estou a entender ... qual é o form que fechas e qual é problema mesmo. Tenta lá explicar isso melhor. A minha aplicação tem uma MainForm, uma form de Login e uma form ChangePassword. Quando inicio, a MainForm é exibida e no load tenho: Login.ShowDialog() Quando estou na janela de Login, ao colocar os dados de utilizador, este tem de mudar a password. Para tal, eu faço o ChangePassword.ShowDialog() mas antes quero que a de Login desapareça (pensando eu que o Me.Close()) fazia o serviço. E é isto. Se estiver confuso diz. Link to comment Share on other sites More sharing options...
pedrix21 Posted September 30, 2009 at 11:59 PM Report Share #289449 Posted September 30, 2009 at 11:59 PM Tenta primeiro abrir o form ChangePassword primeiro e depois fazes close ao form login. Do género: Case = 1 ChangePassword.ShowDialog() Me.Close() oldpassword = txt_password.Text.Replace("'", "").Trim() Me.Close() @Pedro Lopes Link to comment Share on other sites More sharing options...
zephirus Posted October 1, 2009 at 12:01 AM Author Report Share #289451 Posted October 1, 2009 at 12:01 AM Tenta primeiro abrir o form ChangePassword primeiro e depois fazes close ao form login. Do género: Case = 1 ChangePassword.ShowDialog() Me.Close() oldpassword = txt_password.Text.Replace("'", "").Trim() Me.Close() Nada 🙂 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now