none
Al momento de llamar una lista aparece vacia. RRS feed

  • Pregunta

  • Hola,

     Dentro de un USerControlA  tengo una lista llamada "opciones" que se llena de valores numericos al darle click a ciertos botenes, revise la lista y si contiene los datos numericos, Pero cuando la utilizo en el form1 aparece vacia, favor su ayuda.

    UserControlA

     public List<int> opciones = new List<int>();
    
    
            private void btnTolva1_Click(object sender, EventArgs e)
            {
                opciones.Add(1);
                btnTolva1.BackColor = Color.Green;
            }
    
            private void btnTolva2_Click(object sender, EventArgs e)
            {
                opciones.Add(2);
    
                btnTolva2.BackColor = Color.Green;
    
            }
    
            private void btnTolva3_Click(object sender, EventArgs e)
            {
                opciones.Add(3);
                btnTolva3.BackColor = Color.Green;
            }

    Form1 (se caen en la linea 75 donde aparece la lista en 0)

         private void btnCancelarCiclo_Click(object sender, EventArgs e)
            {
                if (!panelPrincipal.Controls.Contains(usTolvas.Instance))
                {
                    panelPrincipal.Controls.Add(usTolvas.Instance);
    
                    foreach (int btnPress in usTolvas.Instance.opciones)
                    {
                        usTolvas.Instance.opciones.Add(btnPress);
                        if (usTolvas.Instance.opciones.Contains(1))
                        {
                            if (!panelPrincipal.Controls.Contains(ucIngresoClicloPaladas.Instance))
                            {
                                panelPrincipal.Controls.Add(ucIngresoClicloPaladas.Instance);
                                ucIngresoClicloPaladas.Instance.btnTolvaFinal1.Visible = true;
                                ucIngresoClicloPaladas.Instance.lblTolva1.Text = "Tolva 1";
                                ucIngresoClicloPaladas.Instance.BringToFront();
                            }
    
                        }
                    }
    
                }
            }

    viernes, 28 de diciembre de 2018 14:35

Respuestas

Todas las respuestas

  • hola

    Lo que veo raro es eso del "Instance" de donde sale ? porque se supone que si el control esta dentro de ese mismo form deberias poder acceder directo usando el nombre del control

    quizas ese "Instance" este creando una instancia nueva, por eso la lista esta vacia

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 28 de diciembre de 2018 15:24
  • Hola Leandro,

     la creo para poder utilizar las propiedades de los botones la cual me funciono, pero intento de esta forma y sigue apareciendo vacia.


    viernes, 28 de diciembre de 2018 15:29
  • hola jorge

    porque no colocas todos los botones en un contenedor y los por ejemplo un groupbox y recorres este contenedor , en mi caso uso un tableLayoutPanel

            private void Form1_Load(object sender, EventArgs e)
            {
    
                tableLayoutPanel1.Controls.OfType<Button>().ToList().ForEach(o => o.Click += ButtonClickHandler);
    
            }

    llamo un método donde "atrapo" el click, ya lo del color hice algo como un switch o bandera que me indique si esta o no clickeado, prueba no se si funcione.

            protected void ButtonClickHandler(object sender, EventArgs e)
            {
                Button clickedButton = sender as Button;
                IsClicked= !IsClicked;
                clickedButton.BackColor = !IsClicked ? Color.FromArgb(255, 240, 240, 240) : Color.Green ;
    
            }

    suerte

    viernes, 28 de diciembre de 2018 15:54
  • Gracias por la ayuda voy a intentar.

    tanto leer me di cuenta de unos ejemplos donde crean una clase para la lista, sera una mejor opcion. ?

    viernes, 28 de diciembre de 2018 17:01
  • hola

    >> la creo para poder utilizar las propiedades de los botones la cual me funciono, pero intento de esta forma y sigue apareciendo vacia.

    no puedes usar el "new", tienes que tener la instancia del user control donde cargarste las opciones

    no se el contexto donde esta ese codigo, pero si el user control esta en el mismo form donde realizas ese evento click debes accederlo con el nombre

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    viernes, 28 de diciembre de 2018 17:07
  • Hola. Qué tipo de aplicación es estas implementando? Asp. Net? 

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    viernes, 28 de diciembre de 2018 19:18
    Moderador
  • window form c#
    lunes, 31 de diciembre de 2018 15:05