Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: luis456 en 25 Septiembre 2013, 20:59 pm



Título: Como se sale de un formulario cuando este envia a ejecutar otro
Publicado por: luis456 en 25 Septiembre 2013, 20:59 pm
hola

Tengo dos formularios uno es del login funciona pero no se como hacer para que cuando este logeado se cierre ya que me queda siempre visible ???


Código
  1. Public Class Login
  2.  
  3.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  4.        If TextBox1.Text = "jose123" Then
  5.            MsgBox("Entraste")
  6.            Form2.Show()
  7.        Else
  8.            MsgBox("seguro eres tu ?")
  9.        End If
  10.    End Sub
  11.  
  12.    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  13.  
  14.        End
  15.  
  16.    End Sub
  17.  
  18. End Class


Título: Re: Como se sale de un formulario cuando este envia a ejecutar otro
Publicado por: noele1995 en 25 Septiembre 2013, 22:25 pm
Código
  1. Me.Hide
si no recuerdo mal


Título: Re: Como se sale de un formulario cuando este envia a ejecutar otro
Publicado por: luis456 en 26 Septiembre 2013, 15:58 pm
Código
  1. Me.Hide
si no recuerdo mal

;) Perfecto gracias

Luis


Título: Re: Como se sale de un formulario cuando este envia a ejecutar otro
Publicado por: MCKSys Argentina en 26 Septiembre 2013, 17:00 pm
Eso oculta el form, pero no lo descarga de la memoria.

Lo que podrias hacer es algo así:

Código
  1. Dim Logged As Boolean
  2.  
  3. Private Sub Command1_Click()
  4. If Text1.Text = "jose123" Then
  5.    Logged = True
  6.    Unload Me
  7. End If
  8. End Sub
  9.  
  10. Private Sub Form_Load()
  11. Logged = False
  12. End Sub
  13.  
  14. Private Sub Form_Unload(Cancel As Integer)
  15. If Logged Then
  16.    Load Form2
  17.    Form2.Show
  18. End If
  19. End Sub
  20.  

Ese código está en VB6 (este subforo es de VB6, no .NET :) )

Saludos!


Título: Re: Como se sale de un formulario cuando este envia a ejecutar otro
Publicado por: luis456 en 26 Septiembre 2013, 18:47 pm
Bueno ahora despues del logeado se oculta pero despues al finalizar el programa lo soluciono

Código
  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.        If TextBox1.Text = "jose123" Then
  3.            MsgBox("Entraste")
  4.            Me.Hide()
  5.            Form2.Show()
  6.        Else
  7.            MsgBox("seguro eres tu ?")
  8.        End If
  9.  
  10.    End Sub
  11. End Class
  12.  



con este boton de cerrar el sistema bueno una chapuza pero sirvio ( creo yo jejej)

Código
  1. Public Class Form2
  2.  
  3.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  4.        Me.Close()
  5.    End Sub
  6. End Class



Título: Re: Como se sale de un formulario cuando este envia a ejecutar otro
Publicado por: Eleкtro en 29 Septiembre 2013, 06:55 am
Luis, intenta seguir las indicaciones del compañero @MCKSys Argentina,

¿Es una chapuzilla?, se podría decir que si, porque mantienes en ejecución ocupando memoria un Form que ya no necesitas, pero también hay que decir que es una chapuzilla sin importancia porque el Form del Login no te va a molestar estando oculto y tampoco te va a dar problema con la memoria consumida, pero si quieres mejorarlo un poco, aquí tienes:

Código
  1. Public Class MainForm
  2.  
  3.    Private Sub Form1_Load(sender As Object, e As EventArgs) _
  4.    Handles Me.Load
  5.  
  6.        LoginForm.ShowDialog()
  7.        ' Al usar el método "ShowDialog" tratamos al Form como un diálogo,
  8.        ' esto quiere decir que se detiene la ejecución del hilo en este evento hasta que cierres el "diálogo" (devolviendo una respuesta o no),
  9.        ' por lo tanto este Form no se mostrará hasta que te loguees, ya que en este punto la ventana todavía no se ha dibujado.
  10.  
  11.    End Sub
  12.  
  13. End Class

Código
  1. Public Class LoginForm
  2.  
  3. ' Aquí me ahorro las explicaciones, que son muchas cosas y es muy tarde (o muy temprano según se mire)
  4. ' Si no entiendes algo pregunta
  5. ' Básicamente son mejoras de código, y un añadido extra para que al presionar la tecla "Enter" en el textbox te puedas loguear.
  6.  
  7.    ReadOnly VerifiedPassword As String = "jose123".ToLower
  8.    Private RetryResponse As DialogResult = Nothing
  9.  
  10.    ReadOnly Property UserPassword
  11.        Get
  12.            Return TextBox_Password.Text.ToLower
  13.        End Get
  14.    End Property
  15.  
  16.    Private Sub LoginForm_Load(sender As Object, e As EventArgs) _
  17.    Handles Me.Load
  18.  
  19.        Me.CenterToScreen()
  20.  
  21.    End Sub
  22.  
  23.    Private Sub TextBox_Password_KeyPress(sender As Object, e As KeyPressEventArgs) _
  24.    Handles TextBox_Password.KeyPress
  25.  
  26.        If e.KeyChar = Convert.ToChar(Keys.Enter) Then
  27.            Button_Login.PerformClick()
  28.        End If
  29.  
  30.    End Sub
  31.  
  32.    Private Sub Button_Login_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
  33.    Handles Button_Login.Click
  34.  
  35.        If UserPassword = VerifiedPassword Then
  36.  
  37.            MessageBox.Show(String.Format("Bienvenido {0} !", VerifiedPassword), _
  38.                            "Login", _
  39.                            MessageBoxButtons.OK, _
  40.                            MessageBoxIcon.Information)
  41.  
  42.            MainForm.Show()
  43.            Me.Dispose()
  44.  
  45.        Else
  46.  
  47.            RetryResponse = MessageBox.Show("Clave de acceso incorrecta, ¿Quieres reintentar?", _
  48.                                            "Login", _
  49.                                            MessageBoxButtons.RetryCancel, _
  50.                                            MessageBoxIcon.Error)
  51.  
  52.            Select Case RetryResponse
  53.  
  54.                Case DialogResult.Cancel
  55.                    End ' No tomes por costumbre usar esta orden, lo uso para no escribir más código y porque el Form principal no carga "nada", pero debes usar "Application.Exit"
  56.  
  57.                Case DialogResult.Retry
  58.                    TextBox_Password.Clear()
  59.                    TextBox_Password.Focus()
  60.  
  61.            End Select
  62.  
  63.        End If
  64.  
  65.    End Sub
  66.  
  67. End Class

Saludos


Título: Re: Como se sale de un formulario cuando este envia a ejecutar otro
Publicado por: luis456 en 29 Septiembre 2013, 12:54 pm
:) Gracias a todos por la ayuda

luis