[SOLUCIONADO] Problema con variables dinámicas...

Iniciado por Eleкtro, 9 Marzo 2013, 20:40 PM

0 Miembros y 1 Visitante están viendo este tema.

Eleкtro

Tengo una serie de controles llamados:
"Button_1"
"Button_2"
"Button_3"


Tengo una serie de variables llamadas:
   Dim Button_1_Location_Y As Integer = 3
   Dim Button_2_Location_Y As Integer = 32
   Dim Button_3_Location_Y As Integer = 61


Y ahora necesito usar las variables en este FOR:
Código (vbnet) [Seleccionar]
       For Each Control In Panela.Controls
           If Control.GetType.ToString.Contains("Button") Then
               Dim Botoncito As Button = CType(Control, Button)
               If Not Botoncito.Name = "Button_" & Selected_TAB Then

                   ' Aquí el problema que no sé resolver:
                   Botoncito.Location = New Point(Botoncito.Location.X, (Botoncito.name & "_Location_Y")) ' String: Button_1_Location_Y


               End If
           End If
       Next


Lo que necesito es convertir este string para usar la variable que se llama exáctamente igual:
(Botoncito.Name & "_Location_Y") ' String: Button_1_Location_Y

¿Alguna ayuda?

Saludos!








Novlucker

Sin pensarlo mucho, por que no usas un diccionario para guardar las variables? :P

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Eleкtro

Gracias NovLucker, pero eso de los diccionarios es algo nuevo para mi.

¿Tu crees que se podría solucionar con eso?

Acabo de informarme y ver varios ejemplos de uso de las colecciones de Diccionarios (http://www.dotnetperls.com/dictionary-vbnet) pero no le encuentro el punto... es decir, parece ser que es una simple colección a la que se puede añadir valores de cualquier tipo, Pero creo me quedo en las misma situación, ¿como lo uso para mi propósito?.

un saludo!








Novlucker

Porque sí como key del diccionario colocas el nombre de la variable, luego accedes al valor por ese nombre
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Eleкtro

#4
Cita de: Novlucker en 10 Marzo 2013, 14:26 PM
Porque sí como key del diccionario colocas el nombre de la variable, luego accedes al valor por ese nombre

No entendí nada de eso cuando te leí por primera vez, sincéramente ni sabía como usar el dictionary para mi propósito a pesar de ver el ejemplo del MSDN, ni tampoco me ibas a ofrecer un ejemplo de uso por más que insistiese xD, así que dejé el tema en blanco.

Ahora ya he aprendido a usar los diccionarios y los hastables porque he podido ver un buen ejemplo para las variables, y era mucho más sencillo de lo que me imaginé xD

Dictionary rules!

Gracias Nov.




EDITO:

Aquí dejo un ejemplo de uso:
Código (vbnet) [Seleccionar]
       Dim MyDictionary As New Dictionary(Of String, Boolean)

       MyDictionary.Add("A", True)
       MyDictionary.Add("B", False)
       MyDictionary.Add("C", Nothing)

       ' Set value
       MyDictionary.Item("C") = True

       ' Get Value
       MsgBox(MyDictionary.Item("C"))


Y aquí el uso que le he dado:
Código (vbnet) [Seleccionar]

   Dim CheckBoxes_Dictionary As New Dictionary(Of String, Boolean)

   Private Sub Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        CheckBox_A.Tag = "A"
        CheckBox_B.Tag = "B"
        CheckBox_C.Tag = "C"

       CheckBoxes_Dictionary.Add("A_Enabled", Nothing)
       CheckBoxes_Dictionary.Add("B_Enabled", Nothing)
       CheckBoxes_Dictionary.Add("C_Enabled", Nothing)
   End Sub

   Private Sub CheckBoxes_CheckedChanged(sender As Object, e As EventArgs) Handles _
       CheckBox_A.CheckedChanged, _
       CheckBox_B.CheckedChanged, _
       CheckBox_C.CheckedChanged

       CheckBoxes_Dictionary.Item(sender.tag & "_Enabled") = sender.Checked

   End Sub