Foros del Web » Programación para mayores de 30 ;) » .NET »

Cambio de menues en un mismo formulario

Estas en el tema de Cambio de menues en un mismo formulario en el foro de .NET en Foros del Web. Estimados, apelo a su conocimiento para que me ayuden a resolver el siguiente inconveniente. El tema es así, estoy haciendo una aplicación en VB.Net 2008 ...
  #1 (permalink)  
Antiguo 12/09/2010, 07:29
 
Fecha de Ingreso: junio-2010
Mensajes: 17
Antigüedad: 13 años, 10 meses
Puntos: 0
Cambio de menues en un mismo formulario

Estimados, apelo a su conocimiento para que me ayuden a resolver el siguiente inconveniente.
El tema es así, estoy haciendo una aplicación en VB.Net 2008 que ejecuta un form el cual seteé su opción IsMdiContainer en True (no sé si esto será relevante) y el cual contiene 2 menús, uno para cerrar la ventana y el otro que se llama Login y abre un ventana para poner un usuario y password (ventana q viene por default en el Visual Studio).
Lo que estoy necesitando es, si es posible, que cuando el usuario inicie la sesión se le cargue sobre ese mismo form otros menús (por ej. Abrir, Consultas, Herramientas, etc.) y obviamente que desaparezcan las opciones anteriores.
En caso de no ser posible, lo que quisiera es abrir un form nuevo, con esos menús y cerrar el principal.

Espero haber sido claro, si no avisen, jeje!

Como mencioné antes, estoy trabajando con el VB.Net de Visual Studio 2008.

Desde ya, muchas gracias.

Saludos,
Dilor
  #2 (permalink)  
Antiguo 12/09/2010, 13:47
 
Fecha de Ingreso: marzo-2007
Mensajes: 74
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Cambio de menues en un mismo formulario

Cualquier duda avisas.

Saludos.

Paso #1
declara una variable global
LoginSucceeded tipo boolean


Paso #2

Crea un form (aparte) que sea el de login este tendra la opcion de salida
Aqui tienes 2 opciones

1) que le des correcto el login si le das correcto el login asignas LoginSucceeded = true

y si te quieres salir sin entrar al programa

2) le des salida dentro del formulario login asignas LoginSucceeded = False
y cierras el formulario login





Paso #3
en tu formulario midi mandalo llamar al formulario login


frmLogin.ShowDialog()

Cuando salga del login si le diste salir se va por la siguiente opcion





If LoginSucceeded = False Then
Me.Close()
End If
  #3 (permalink)  
Antiguo 12/09/2010, 18:33
 
Fecha de Ingreso: junio-2010
Mensajes: 17
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Cambio de menues en un mismo formulario

Winexim, muchas gracias por responder.
Esa parte que vos me decis mas o menos lo tengo. Por ahi no se entendió bien lo que quiero (o yo no entendí bien lo que me decis, que puede ser posible, jeje!).

Mando el código que tengo hasta ahora para que se entiende mejor y vuelvo a explicar brevemente.

El tema es así, yo tengo un formulario llamado Acceso (con su propiedad IsMdiContainer en True) con 2 menús, Login y Salir. Este es su código:

Código:
Public Class Acceso

    Private Sub LoginToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LoginToolStripMenuItem.Click
        Login.ShowDialog()
    End Sub

    Private Sub SalirToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SalirToolStripMenuItem.Click
        Me.Close()
    End Sub

End Class
Cuando presiono sobre Login aparece un nuevo formulario de nombre Login el cual contiene el siguiente código:

Código:
Public Class Login

    Private Sub PasswordTextBox_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles PasswordTextBox.KeyPress
        If (e.KeyChar = Convert.ToChar(Keys.Return)) Or (e.KeyChar = Convert.ToChar(Keys.Enter)) Then
            OK_Click(Nothing, Nothing)
        End If
    End Sub

    Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
        Dim usr As New BE.BE.Usuario_BE

        usr.Usuario = Me.UsernameTextBox.Text
        usr.Password = Me.PasswordTextBox.Text
        Try
            Select Case BLL.BLL.Usuario_BLL.loginUser(usr)
                Case 1
                    MsgBox("Usuario y/o contraseña incorrectos", MsgBoxStyle.Exclamation, "Validacion")
                    Me.PasswordTextBox.Clear()
                    Exit Sub
                Case 2
                    MsgBox("Su cuenta está bloqueada." & Chr(13) & _
                    "Por favor póngase en contacto con el Administrador.", MsgBoxStyle.Exclamation, "Cuenta bloqueada")
                    Me.PasswordTextBox.Clear()
                    Exit Sub
            End Select
        Catch ex As Exception
            MsgBox(ex.InnerException.Message, MsgBoxStyle.Critical, "Error")
        End Try
    End Sub

    Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click
        Me.Close()
    End Sub

End Class
Acá chequea el usuario, y es acá donde quiero hacer que si el usuario está bien, se cierre dicha ventana (la de Login) y en el formulario anterior cambie los menús por otros que yo quiera, pero sin cambiar de form (si es posible).
En caso de no ser posible de esta manera, lo que quiero es que se cierre el form de Acceso y se abra uno nuevo (por ej. el form MenuPrincipal).

Espero haber sido un poco mas claro.

Saludos,
Dilor.
  #4 (permalink)  
Antiguo 12/09/2010, 21:02
 
Fecha de Ingreso: marzo-2007
Mensajes: 74
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Cambio de menues en un mismo formulario




Vas muy bien te acosejo que termines todo el menu.

Este es uno de nuestros menus.

El formulario de atras es como el tuyo tiene en true la propiedad isMdiContainer=true

paso#1
termina todo el Menu el el formulario Mdi

Paso #2
No quites la salida ni el login del menu
el login se queda por que a veces entramos con otro usuario

Paso#3
Agrega una variable global que indique si el password lo diste correcto o no
la variable global la creas agregando un modulo y dentro de este modulo pones
Public LoginSucceeded as boolean

Paso#4
En el formulario login

Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
Dim usr As New BE.BE.Usuario_BE

usr.Usuario = Me.UsernameTextBox.Text
usr.Password = Me.PasswordTextBox.Text
Try
Select Case BLL.BLL.Usuario_BLL.loginUser(usr)
Case 1
MsgBox("Usuario y/o contraseña incorrectos", MsgBoxStyle.Exclamation, "Validacion")
Me.PasswordTextBox.Clear()
Exit Sub
Case 2
MsgBox("Su cuenta está bloqueada." & Chr(13) & _
"Por favor póngase en contacto con el Administrador.", MsgBoxStyle.Exclamation, "Cuenta bloqueada")
Me.PasswordTextBox.Clear()
Exit Sub
End Select

'esto es nuevo
LoginSucceeded=true
Me.Close()

Catch ex As Exception
MsgBox(ex.InnerException.Message, MsgBoxStyle.Critical, "Error")
End Try
End Sub

Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click
Me.Close()
End Sub

y en el de cancelar pones

Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click
'esto es nuevo
LoginSucceeded=true

Me.Close()
End Sub






Private Sub Acceso_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load

' en load del forumulario del mdi pones


Login.ShowDialog()
If LoginSucceeded = False Then
'aqui cierro el mdi y se cierra todo el programa
Me.Close()
End If


Por favor cualquier duda mencionala.


Tu base de datos en que esta?

Saludos.
  #5 (permalink)  
Antiguo 13/09/2010, 10:38
 
Fecha de Ingreso: junio-2010
Mensajes: 17
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Cambio de menues en un mismo formulario

Mil gracias nuevamente Winexim!!!
Anduvo de mil maravillas, es lo que estaba buscando. Lo del módulo no lo sabía, soy medio inexperto en programación, jeje!!

¿Es como declarar una variable global no?
Me vino bárbaro porque el sistema lo estoy haciendo en 4 capas y al agregar ese módulo lo puedo utilizar en toda esa capa (en este caso la UI).

El código del form principal me quedó así entonces, así lo puede ver quien quiera:

Código:
Public Class Acceso

    Private Sub Acceso_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ArchivoToolStripMenuItem.Available = False
        AdministracionToolStripMenuItem.Available = False
        ClientesToolStripMenuItem.Available = False
        ProductosToolStripMenuItem.Available = False
        VentasToolStripMenuItem.Available = False
        EmpleadosToolStripMenuItem.Available = False
    End Sub

    Private Sub LoginToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LoginToolStripMenuItem.Click
        Login.ShowDialog()
        If LoginSucceeded Then
            LoginToolStripMenuItem.Available = False
            ArchivoToolStripMenuItem.Available = True
            AdministracionToolStripMenuItem.Available = True
            ClientesToolStripMenuItem.Available = True
            ProductosToolStripMenuItem.Available = True
            VentasToolStripMenuItem.Available = True
            EmpleadosToolStripMenuItem.Available = True
        End If
    End Sub

    Private Sub SalirToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SalirToolStripMenuItem.Click
        Me.Close()
    End Sub

End Class
Me olvidaba, mi base está en SQL 2008.

Ahora resta seguir perfeccionándolo.

Muchas gracias.

Saludos,
  #6 (permalink)  
Antiguo 13/09/2010, 20:53
 
Fecha de Ingreso: marzo-2007
Mensajes: 74
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Cambio de menues en un mismo formulario

Asi es todo lo que declares en el modulo es global

Public LoginSucceeded as boolean

Cualquier otra duda por favor no dudes en hacerla.

Saludos.

Etiquetas: formulario, cambios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:09.