Jump to content

inicializar un objeto una vez y leerlo desde otro form de vb


Recommended Posts

holas a todos. bueno les explico, resulta que estoy haciendo un pequeño programa el cual requiere un inicio de sesion, lo estoy haciendo en visual 2010 windows forms, lo tengo casi listo pero el tema de los usuarios me tiene enrredado.

 

tengo el login, con el user y la pass hago una consulta a la BD para que me devuelva los daos completos y los inserte en variables aparte, una vez que las variables estan con la info, en el boton del iniciar sesion inicializo el constructor con las variables (que contienen la info de la insulta). hasta aqui todo bien.

 

el tema es que necesito acceder a esta clase u objeto desde otros form, pero no me deja ver la info que tiene la clase y aun mas me dice que debo inicializarla

 

con el comando 'dim u as new usuario(linea de variables)'

 

mi pregunta es... hay alguna forma de poder ver la info que contiene esta clases desde todos los forms que necesite??

 

aqui le adjunto la clase

 

Public Class usuario
'variables privadas
Private _id As Integer
Private _nombre As String
Private _apellido As String
Private _usuario As String
Private _contraseña As String
Private _tipouser As Integer

'constructor
Public Sub New(ByVal _id As Integer, ByVal _nombre As String, ByVal _apellido As String, ByVal _usuario As String, ByVal _contraseña As String, ByVal _tipouser As Integer)
	Me._id = _id
	Me._nombre = _nombre
	Me._apellido = _apellido
	Me._usuario = _usuario
	Me._contraseña = _contraseña
	Me._tipouser = _tipouser
End Sub

'propiedades
Public Property id() As Integer
	Get
		Return _id
	End Get
	Set(ByVal value As Integer)
		_id = value
	End Set
End Property

Public Property nombre() As String
	Get
		Return _nombre
	End Get
	Set(ByVal value As String)
		_nombre = value
	End Set

End Property
Public Property apellido() As String
	Get
		Return _apellido
	End Get
	Set(ByVal value As String)
		_apellido = value
	End Set

End Property
Public Property nusuario() As String
	Get
		Return _usuario
	End Get
	Set(ByVal value As String)
		_usuario = value
	End Set

End Property
Public Property contraseña() As String
	Get
		Return _contraseña
	End Get
	Set(ByVal value As String)
		_contraseña = value
	End Set

End Property
Public Property tipouser() As Integer
	Get
		Return _tipouser
	End Get
	Set(ByVal value As Integer)
		_tipouser = value
	End Set
End Property
End Class

 

de antemano muchas gracias :)

Link to comment
Share on other sites

Mira esto:

Public Class GlobalVariables
   Public Shared UserName As String = "Tim Johnson"
   Public Shared UserAge As Integer = 39
End Class

 

Public Class Form1 : Inherits Form
   Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    MessageBox.Show("Hello, " & GlobalVariables.UserName)
   End Sub
End Class

 

 

Creo que por ahi va la respuesta.

 

 

Saludos :krider:

Link to comment
Share on other sites

La forma de ash es una muy buena opción... pero hay un par más... Una de las diferencias principales entre las 3 es el tema de seguridad... Por ejemplo, al definir una clase como public, puedes acceder a sus métodos y propiedades desde aplicaciones externas... ojo con eso...

 

Bueno... los otros 2 métodos:

 

1. puedes hacer un módulo y allí definir las variables globales... este es una forma al estilo visual 6 :tonto:

2. puedes inicializar la clase una sola vez y luego pasar esa instancia a todos los forms... eso sí, fíjate de pasarlas por referencia y no por valor... osea, tienes que usar ByRef...

 

Sono+ ;)

Link to comment
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...