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

Problema con variable en evento SelectedIndexChanged

Estas en el tema de Problema con variable en evento SelectedIndexChanged en el foro de .NET en Foros del Web. Hola a todos, Soy nuevo en el foro y en esto de la programación, por lo que nado en un mar de dudas sobre cómo ...
  #1 (permalink)  
Antiguo 23/08/2012, 15:46
 
Fecha de Ingreso: agosto-2012
Ubicación: Madrid
Mensajes: 6
Antigüedad: 11 años, 8 meses
Puntos: 0
Problema con variable en evento SelectedIndexChanged

Hola a todos,

Soy nuevo en el foro y en esto de la programación, por lo que nado en un mar de dudas sobre cómo resolver algunos problemas con los que me voy encontrando.

En concreto, el tema que ahora me ocupa es el siguiente:

Tengo varios combobox en un formulario desde el que, a partir de un valor seleccionado en cada combo, recupero un datarow de un datatable.

Desde ese datarow recupero un campo del datatable que asigno una variable (una por combo).

El problema que tengo es que no puedo utilizar estas variables fuera de los procedimientos de evento SelectedIndexChanged, que es donde tengo el código.

La cuestión es que quiero utilizar estas variables fuera de los eventos de los combos ya que quiero hacer operaciones entre ellas, en concreto dividir unas variables entre otras.

¿Sabéis cómo puedo solucionar este problema?

Muchas gracias.
  #2 (permalink)  
Antiguo 23/08/2012, 16:01
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: Problema con variable en evento SelectedIndexChanged

Si dichas variables solo las utilizarás dentro de la misma clase podrías declararlas como globales, de esta forma la podrás utilizar en cualquier parte de la clase.

Saludos.
__________________
http://ka0stj.wordpress.com/
  #3 (permalink)  
Antiguo 23/08/2012, 16:42
 
Fecha de Ingreso: agosto-2012
Ubicación: Madrid
Mensajes: 6
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema con variable en evento SelectedIndexChanged

Hola KaOstj,

Así tengo declaradas las variables, como "Public" en la parte de declaraciones de la Clase, antes de ningún procedimiento.

El caso, es que lo hago así y no me da ningún error ni en tiempo de diseño ni en tiempo de ejecución, pero sucede lo siguiente:

Si muestro la variable con un TextBox.Text dentro del evento del combo, me pinta el valor. Sin embargo, cuando saco la variable fuera del evento del combo y la intento pintar con un TextBox.Text, no lo pinta. Además, marco la asignación de la variable con un f9 y no llega ni a ejecutarse. La verdad es que no entiendo muy bien porqué pasa.


Gracias again.
  #4 (permalink)  
Antiguo 24/08/2012, 04:37
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Problema con variable en evento SelectedIndexChanged

Buenas,

Pon el código para ver que estás haciendo.

Un saludo.
  #5 (permalink)  
Antiguo 24/08/2012, 05:39
 
Fecha de Ingreso: agosto-2012
Ubicación: Madrid
Mensajes: 6
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema con variable en evento SelectedIndexChanged

En primer lugar declaro las variables dentro de la clase:

Public Class FormMiClase
Public MiVariable1,MiVariable2, ..., MiVariableN as Double
...

Después de realizar la conexión a la base de datos, y dar de alta el DataAdapter, DataSet, etc, abro el procedimiento de evento del primer ComboBox:

Sub cmbPrimerCombobox_SelectedIndexChanged(ByVal sender As System.Object...) Hadles...

Dim MiDataRow1 As DataRow = MiDataSet.Tables("MiTabla").Rows.Find(cmbPrimerCom bobox.Text)

MiVariable1 = CDbl(MiDataRow("MiCampo1"))
MiVariable2 = CDBl(MiDatarow("MiCampo2"))
...
End Sub

...

Esto lo hago para cada uno de los combobox que tengo dados de alta obteniendo N variables en cada uno de ellos.

Por útltimo quiero dividir estas variables entre ellas para obtener un porcentaje. Lo hago en una nueva subrutina:

Sub MiSubrutina ()

Dim MiVariablePorcentaje1 as Double
Dim MiVariablePorcentaje2 as Double
...
...

MiVariablePorcentaje1 = (MiVariable1/MiVariable2)
MiVariablePorcentaje2 = (MiVariableX/MiVariableN)

...

End Sub
End Class


El problema es que no puedo realizar esta división ya que, aún cuando no me da errores, no obtengo ningún resultado ya que parece que las variables no funcionan fuera de las subrutinas del evento SelectedIndexChanged de los Combos.

Sinceramente, no se si estoy haciendo una burrada ya que soy autodidacta y bastante novato.
  #6 (permalink)  
Antiguo 24/08/2012, 09:18
Avatar de cristiantorres  
Fecha de Ingreso: marzo-2012
Mensajes: 383
Antigüedad: 12 años, 1 mes
Puntos: 61
Respuesta: Problema con variable en evento SelectedIndexChanged

Y los combobox los tienes enlazados a un origen de datos es decir llenas el combobox con datos de la bd, porque si es así deverias usar la propiedad SelectedValue del combobox para obtener el valor seleccionado.
__________________
Visita mi Blog C#, vb.net, asp.net, sql, java y mas...
Blog Cristian Torres
  #7 (permalink)  
Antiguo 26/08/2012, 04:50
 
Fecha de Ingreso: agosto-2012
Ubicación: Madrid
Mensajes: 6
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema con variable en evento SelectedIndexChanged

Intenté enlazar los combos a la base de datos, pero cuando cambiaba uno me cambiaban todos los combos. Por lo visto esto tiene que ver con los databindings, pero como he dicho soy bastante novato y lo que hice fue introducir el campo por el que busco en la bd en la propiedad Colection de los combos (es poco elegante pero me funciona).
  #8 (permalink)  
Antiguo 27/08/2012, 03:21
 
Fecha de Ingreso: agosto-2012
Ubicación: Madrid
Mensajes: 6
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema con variable en evento SelectedIndexChanged

Ya he resuelto el problema de enlazar los combos a la base de datos en lugar de utilizar la propiedad Items (Collection) del combo. Están todos conectados a la base de datos y funcionando cada uno de manera independiente.

Pero sigo sin poder utilizar las variables fuera del evento SelectedIndexChanged del Combo... ¿alguién puede ayudarme, pls?
  #9 (permalink)  
Antiguo 27/08/2012, 09:26
Avatar de cristiantorres  
Fecha de Ingreso: marzo-2012
Mensajes: 383
Antigüedad: 12 años, 1 mes
Puntos: 61
Respuesta: Problema con variable en evento SelectedIndexChanged

Como te lo dije antes si los combobox estan enlazados a un origen de datos debes recuperar el valor con selectvalue.
Algo asi.
Código vb.net:
Ver original
  1. Public var As String 'variable a nivel de clase
  2.  
  3. Sub cmbPrimerCombobox_SelectedIndexChanged(...)
  4. var = Convert.ToString(ComboBox.SelectedValue)
  5. End Sub
Declaras las variables a nivel de clase y luego dentro del evento capturas el valor seleccionado.
__________________
Visita mi Blog C#, vb.net, asp.net, sql, java y mas...
Blog Cristian Torres

Última edición por cristiantorres; 27/08/2012 a las 09:32
  #10 (permalink)  
Antiguo 30/08/2012, 14:57
 
Fecha de Ingreso: agosto-2012
Ubicación: Madrid
Mensajes: 6
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema con variable en evento SelectedIndexChanged

Hola de nuevo.

Solcuioné el problema. He metido el código en el evento click de un boton, así que cuando lo pulso recupero el valor de los combos (mediante selecteditem) y lo asigno a las variables.

Gracias a todos por la ayuda.

Etiquetas: evento, variables
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 23:02.