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

Cambiar valor de variable public con botones en vb

Estas en el tema de Cambiar valor de variable public con botones en vb en el foro de .NET en Foros del Web. Lo que pretendo es usar el valor de una variable publica a otro formulario... lo que sucede esque la tengo declarada de la siguiente manera: ...
  #1 (permalink)  
Antiguo 03/04/2012, 20:52
 
Fecha de Ingreso: abril-2012
Mensajes: 25
Antigüedad: 12 años
Puntos: 0
Pregunta Cambiar valor de variable public con botones en vb

Lo que pretendo es usar el valor de una variable publica a otro formulario... lo que sucede esque la tengo declarada de la siguiente manera:

Lo que pretendo con el codigo es que cada vez que le de click a un boton "dependiendo del boton", me cambie el valor a Public idestado As Integer, la inicializo en 0, si le cambio valores (1,2,3,4) si me funciona pero en inicio la inicializo en 0, y cuando le de click en un boton de los declarados, quiero que cambie el valor de esa variable public.

Public Class Estado
Public idestado As Integer=0

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Me.Hide()
Inicio.Show()
End Sub

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.Hide()
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'ID:1'
Me.idestado = 1
Me.Hide()
QuintanaRoo.Show()
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'ID:2'
Me.idestado = 2
Me.Hide()
Tabasco.Show()
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'ID:3'
Me.idestado = 3
Me.Hide()
Campeche.Show()
End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
'ID:4'
Me.idestado = 4
Me.Hide()
Yucatan.Show()
End Sub


End Class


Todo eso para que me funcione en otro formulario, que utiliza esa variable y todo lo tengo declarado como, pues lo quiero usar en un combobox (como prueba de que si puedo cambiar el valor apartir de dar click en el mismo, pues lo pretendo usar para otros fines):

Imports MySql.Data.MySqlClient
Imports MySql.Data
Imports AppCenotes.Estado
Public Class Informacion
Friend conexion As MySqlConnection
Private Sub Informacion_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim Aestado As Estado = New Estado
'Creamos conexion'
conexion = New MySqlConnection()
conexion.ConnectionString = "server=" & "localhost" & ";" & "user id=" & "root" & ";" & "password=" & " " & ";" & "Database=" & "cenotes" & ";"

'Creamos adaptador'
Dim adapter As New MySqlDataAdapter("Select a.nombre from cenotes as a, localidades as b where b.ID_localidad=a.localidad AND b.ID_estado=" & Aestado.idestado, conexion)
Dim dbDataset As DataSet = New DataSet()
conexion.Open()

'Utilizar el adaptador para llenar el dataset con una tabla'
adapter.Fill(dbDataset, "nombre")
conexion.Close()

'Una vez desconectados, recccorremos la tabla del dataset'
Dim tabla As DataTable
tabla = dbDataset.Tables("nombre")

Dim Fila As DataRow
For Each Fila In tabla.Rows
'Mostrar los datos mediante un objeto fila'
Combo.Items.Add(Fila.Item("nombre"))
Next
End Sub
End Class

Ya busque en Google, como Cambiar valor a una variable public en (.net, visual basic, visual basic 2010, visual studio 2010)..... " de todas esas formas... una por una... y nada!" u.u! espero que me puedan ayudar saludos :S!

Mi problema original es este:

Supongamos que tengo la variable en el Form1

"Variable X"

Si le doy click al boton #1.... esta variable tendra el valor X=1
Si le doy click al boton #2.... esta variable tendra el valor X=2
Si le doy click al boton #3.... esta variable tendra el valor X=3
Si le doy click al boton #4.... esta variable tendra el valor X=4

Depende del boton, el valor que quiera ponerle a la variable X


y todos esos botones me llevan al Form2... en donde dependiendo del boton la variable X ya habra tomado su valor... entonces esa variable la quiero usar en el Form2, con su respectivo valor...

Última edición por necbalaam; 04/04/2012 a las 15:03 Razón: Mejor explicacion (espero)
  #2 (permalink)  
Antiguo 04/04/2012, 21:12
Avatar de ramirezmario7  
Fecha de Ingreso: febrero-2008
Ubicación: Medellín
Mensajes: 336
Antigüedad: 16 años, 2 meses
Puntos: 56
Respuesta: Cambiar valor de variable public con botones en vb

Hola.
Te pregunto esa variable la tienes en un formulario, si es asi yo veo un problema, si en algun momento tu deseas usar ese formulario al momento de hacer la instancia de ese formulario esa variable pasara al valor que tiene por defecto.
Yo te recomiendo lo siguiente:

Crea una clase publica en esta clase crea esa variable como publica y estatica, esto lo que hara es que no importa de donde la llames siempre tendra el valor que le diste, como es estatica no hace falta que la instancies solo la llamas directamente y te trabajara.
__________________
Mario Ramírez
Desarrollador .NET MCTS
https://www.mcpvirtualbusinesscard.c...nteractivecard
  #3 (permalink)  
Antiguo 04/04/2012, 21:31
 
Fecha de Ingreso: abril-2012
Mensajes: 25
Antigüedad: 12 años
Puntos: 0
Sonrisa Respuesta: Cambiar valor de variable public con botones en vb

Cita:
Iniciado por ramirezmario7 Ver Mensaje
Hola.
Te pregunto esa variable la tienes en un formulario, si es asi yo veo un problema, si en algun momento tu deseas usar ese formulario al momento de hacer la instancia de ese formulario esa variable pasara al valor que tiene por defecto.
Yo te recomiendo lo siguiente:

Crea una clase publica en esta clase crea esa variable como publica y estatica, esto lo que hara es que no importa de donde la llames siempre tendra el valor que le diste, como es estatica no hace falta que la instancies solo la llamas directamente y te trabajara.
La variable la tengo en un Form1 y la quiero llamar en Form2

me pregunto si lo hago en una clase publica como me dices en el Form1 la podre cambiar el valor cada vez q le de click a algun boton?...

y ese valor que tome por cada vez que le de click a alguno de esos botones lo podre usar en el Form2?

por que como mencione lo quisiera hacer es esto:
Cita:
Supongamos que tengo la variable en el Form1

"Variable X"

Si le doy click al boton #1.... esta variable tendra el valor X=1
Si le doy click al boton #2.... esta variable tendra el valor X=2
Si le doy click al boton #3.... esta variable tendra el valor X=3
Si le doy click al boton #4.... esta variable tendra el valor X=4

Depende del boton, el valor que quiera ponerle a la variable X


y todos esos botones me llevan al Form2... en donde dependiendo del boton la variable X ya habra tomado su valor... entonces esa variable la quiero usar en el Form2, con su respectivo valor...

Normas de Publicación

y si puedo lograrlo como haria esa clase publica? :S
  #4 (permalink)  
Antiguo 05/04/2012, 07:53
Avatar de ramirezmario7  
Fecha de Ingreso: febrero-2008
Ubicación: Medellín
Mensajes: 336
Antigüedad: 16 años, 2 meses
Puntos: 56
Respuesta: Cambiar valor de variable public con botones en vb

Hola.
Claro que puedes usar y modificar esa variable en cualquier formulario.

Lo que tienes que hacer es en el esplorador de soluciones agregar una clase, a esta clase la debes de colocar publica por lo menos en C# uno debe de agregarla como publica pero creo que en VB no hace falta eso pero no estoy seguro ya que no manejo VB.

Te paso como quedaria la clase, el codigo que te copio fue convertido en internet desde un codigo C#
Código:
Public Class Utilidades
        Public Shared idestado As Integer

    End Class
Ya para poder usar esa variable desde cualquier formulario solo haces esto.
'Modificar variable
Utilidades.idestado = 1

'Usar Variable
Dim valor As Integer = Utilidades.idestado
__________________
Mario Ramírez
Desarrollador .NET MCTS
https://www.mcpvirtualbusinesscard.c...nteractivecard
  #5 (permalink)  
Antiguo 05/04/2012, 10:47
 
Fecha de Ingreso: abril-2012
Mensajes: 25
Antigüedad: 12 años
Puntos: 0
Respuesta: Cambiar valor de variable public con botones en vb

Para que funcionara de este codigo:

Código:

Public Class Informacion
Friend conexion As MySqlConnection
Private Sub Informacion_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim Aestado As Estado = New Estado
'Creamos conexion'
conexion = New MySqlConnection()
conexion.ConnectionString = "server=" & "localhost" & ";" & "user id=" & "root" & ";" & "password=" & " " & ";" & "Database=" & "cenotes" & ";"

'Creamos adaptador'
Dim adapter As New MySqlDataAdapter("Select a.nombre from cenotes as a, localidades as b where b.ID_localidad=a.localidad AND b.ID_estado=" & Aestado.idestado, conexion)
Dim dbDataset As DataSet = New DataSet()
conexion.Open()


le quite el Dim Aestado As Estado = New Estado

y en la parte del adaptador

Dim adapter As New MySqlDataAdapter("Select a.nombre from cenotes as a, localidades as b where b.ID_localidad=a.localidad AND b.ID_estado=" & Aestado.idestado, conexion)

lo cambie para que quedara asi:

Dim adapter As New MySqlDataAdapter("Select a.nombre from cenotes as a, localidades as b where b.ID_localidad=a.localidad AND b.ID_estado=" & Estado.idestado, conexion)


Gracias por tu recomendacion ramirezmario7, no dejare atras tu recomendacion, porque eso lo utilizare para que utilice una misma conexion al mysql... por que me recomendaron que solo utilice una misma conexion al mysql para que no haga conexion a todos los formularios... vale :)
  #6 (permalink)  
Antiguo 05/04/2012, 11:01
Avatar de ramirezmario7  
Fecha de Ingreso: febrero-2008
Ubicación: Medellín
Mensajes: 336
Antigüedad: 16 años, 2 meses
Puntos: 56
Respuesta: Cambiar valor de variable public con botones en vb

Hola.
si es para conexiones seria mejor usar el archivo de configuración.
__________________
Mario Ramírez
Desarrollador .NET MCTS
https://www.mcpvirtualbusinesscard.c...nteractivecard
  #7 (permalink)  
Antiguo 05/04/2012, 17:07
Avatar de elarrieux  
Fecha de Ingreso: abril-2012
Ubicación: Uruguay
Mensajes: 67
Antigüedad: 12 años
Puntos: 26
Respuesta: Cambiar valor de variable public con botones en vb

Hola!

Como dice Mario, los string de conexion los deberias tener en el app.config.

Tambien entiendo lo que quieres hacer y te puedo sugerir que utilices el patron Singleton (http://es.wikipedia.org/wiki/Singleton) para crearte una clase por ej Sistema que contenga toda la info que necesitas, incluyendo una conexion a la base de datos.

Sds.
  #8 (permalink)  
Antiguo 05/04/2012, 21:13
 
Fecha de Ingreso: febrero-2011
Mensajes: 99
Antigüedad: 13 años, 2 meses
Puntos: 10
Respuesta: Cambiar valor de variable public con botones en vb

La verdad no entendi tanto... xq no entendi tu codigo...

Pero si lo que tu quieres es cambiar una variable del Form1 usando botones del Form2.. solo has lo siguiente:


Usaremos lo siguiente...

1 variable en PUBLIC (en el form 1)
2 Botones para cambiar la variable (en el form 2)

En el Form 1:

Código vb:
Ver original
  1. Public Class Form1
  2.  
  3.     Public numero As Integer
  4.  
  5.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  6.         Form2.Show()
  7.     End Sub
  8. End Class

En el Form 2:

Código vb:
Ver original
  1. Public Class Form2
  2.  
  3.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  4.         Form1.numero = 1 ' se cambia el valor de la variable "numero"
  5.        Form1.Text = Form1.numero ' se cambia el texto del form1 por el valor de "numero"
  6.    End Sub
  7.  
  8.     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  9.         Form1.numero = 2 ' se cambia el valor de la variable "numero"
  10.        Form1.Text = Form1.numero ' se cambia el texto del form1 por el valor de "numero"
  11.    End Sub
  12. End Class

Espero que sea lo que buscas (:

Etiquetas: vb
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 11:36.