Visual Basic.NET - problema de concepto

 
Vista:

problema de concepto

Publicado por Moncho (4 intervenciones) el 03/12/2003 18:54:59
Muy buenas, a ver si alguien me puede ayudar (ya que no tengo mucha idea y estoy un poco perdido).

Estoy haciendo una aplicación y tengo dos formularios.
Cuando paso de uno a otro, los valores de las variables que uso en cada uno de ellos pierden su valor en el otro formulario.

Mi pregunta (absurda, lo se), es que, como puedo hacer para que una de esas variables tenga el mismo valor en todos lados.

En fin gracias por adelantado.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 153
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

RE:problema de concepto

Publicado por Yamil Bracho (631 intervenciones) el 03/12/2003 19:33:41
Tienes varias maneras de hacerlo, una es creando una propiedad para recibir la variable cuando creas la instancia de la segunda ventana en la primera. En la segunda ventana colocas

Dim myVar As String

Public Property MyVar() As String
Get
return this.myVar
End Get
Set(ByVal Value As String)
this.myVar = Value
End Set
End Sub

y desde Form1 puedes hacer
Dim f As Form2
f.MyVar() = "Valor"
f.Show()

Lo otro que peueds hacer es crear una clase con una propiedad estatica. Seria algo como

Class MiClase
Dim myVar As String

Static Property MyVar() As String
Get
Return myVar
End Get
Set(ByVal Value As String)
myVar = Value
End Set
End Property
End Class

En el formulario 1 puedes hacer
MiClase.MyVar = "Valor"
Dim f As new Form2()
f.Show()

Y en el formulario 2, evento Load puedes hacer
MsgBox MiClase.MyVar


End Property
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema de concepto

Publicado por Moncho (4 intervenciones) el 04/12/2003 10:41:04
Bueno lo primero gracias por la ayuda, y ahora otra preguntilla:
Con la segunda forma que me has dado para hacerlo, obtengo dos errores.

En la línea
"Static Property MyVar() As String"
en Static me dice que "Properties cannot be declared static"
y en MyVar me dice que "myVar is already declared as Private Dim myVar as String in this class"
y la verdad es que no se porque.

A ver si me puedes ayudar, y otra vez muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema de concepto

Publicado por Moncho (4 intervenciones) el 04/12/2003 11:32:37
Otra vez por aquí.

Nada, ya esta todo solucionado y gracias otra vez.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema de concepto

Publicado por Edgar (1501 intervenciones) el 03/12/2003 23:54:28
Hola

No es que pierdan el valor, es que cuando creas un objeto las variables y los métodos solo tienen alcance dentro del objeto. En otras palabras, se reserva espacio en memoria para cada variable declarada en ese objeto.

La mejor solución es declarar las variables estáticas (Private Shared mivariable as tipo) y luego declaras la propiedad estática (Public Shared mipropiedad)

Esto hace que la variable quede compartida entre todos los objetos de la misma clase, por lo que si la modificas en un objeto, quedará modificada para todos los demás.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema de concepto

Publicado por Moncho (4 intervenciones) el 04/12/2003 10:15:01
Muchas gracias por la ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar