• Domingo 22 de Diciembre de 2024, 09:11

Autor Tema:  usercontrol combobox  (Leído 1267 veces)

mar_ccv

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
usercontrol combobox
« en: Viernes 18 de Febrero de 2011, 19:18 »
0
Hola a todos , tengo el siguiente caso  que estoy trabajando en C# Winforms.

1.   He creado un UserControl que tiene un combobox donde se almacena el maestro de familias de productos :

public partial class Familias : UserControl
    {
        private OracleConnection conexionOracle;
        private SujifosBasesdeDatos sufijo;

        public Familias()
        {
            InitializeComponent();
        }

        public void PoblarFamilia(OracleConnection conexionOracle, SujifosBasesdeDatos sufijo)
        {
            this.conexionOracle = conexionOracle;
            this.sufijo = sufijo;
            cbFamilias.DataSource = new SicolafNG(conexionOracle).obtenerFamilias(new FamiliasTR(), sufijo);
            cbFamilias.DisplayMember = "Descripcion";
            cbFamilias.ValueMember = "Codigo";
            cbFamilias.Text = "";
            cbFamilias.SelectedText = "";
            cbFamilias.DropDownStyle = ComboBoxStyle.DropDownList;            
        }        
    }
2. En la forma donde utilizo el usercontrol necesito cambiar el SelectedIndex que tiene el combobox que esta en el usercontrol pero no he podido y  tengo el siguiente código

#region poblar la familia  ; Dejar seleccionada la familia que ha especificado el usuario en el Bono

indice = 0;
encontrado = false;            

            foreach (Control obj in familias1.Controls)
            {
               if (obj is ComboBox)
               {
                   foreach(object objeto in ((ComboBox)obj).Items)
                   {
                       FamiliasTR prueba = (FamiliasTR)objeto;
                       if ( prueba.Codigo == bonoConsulta.Codfamilia)
                       {
                          encontrado = true;
                          break;
                       }
                        indice++;
                   }

                   if (encontrado)
                   {
                       
                      //Aquí necesito adicionar la línea de código para cambiar el SelectedIndex
                     // pero solo tengo el siguiente dato

                        this.familias1.Controls. ......... = indice ;

                       

                   }                      
                   
               }
                   
            }          

            #endregion              

Gracias a los que me puedan ayudar

.net

  • Miembro MUY activo
  • ***
  • Mensajes: 181
  • Nacionalidad: mx
    • Ver Perfil
Re: usercontrol combobox
« Respuesta #1 en: Martes 8 de Marzo de 2011, 22:51 »
0
Cita de: "mar_ccv"
Hola a todos , tengo el siguiente caso  que estoy trabajando en C# Winforms.

1.   He creado un UserControl que tiene un combobox donde se almacena el maestro de familias de productos :

public partial class Familias : UserControl
    {
        private OracleConnection conexionOracle;
        private SujifosBasesdeDatos sufijo;

        public Familias()
        {
            InitializeComponent();
        }

        public void PoblarFamilia(OracleConnection conexionOracle, SujifosBasesdeDatos sufijo)
        {
            this.conexionOracle = conexionOracle;
            this.sufijo = sufijo;
            cbFamilias.DataSource = new SicolafNG(conexionOracle).obtenerFamilias(new FamiliasTR(), sufijo);
            cbFamilias.DisplayMember = "Descripcion";
            cbFamilias.ValueMember = "Codigo";
            cbFamilias.Text = "";
            cbFamilias.SelectedText = "";
            cbFamilias.DropDownStyle = ComboBoxStyle.DropDownList;            
        }        
    }
2. En la forma donde utilizo el usercontrol necesito cambiar el SelectedIndex que tiene el combobox que esta en el usercontrol pero no he podido y  tengo el siguiente código

#region poblar la familia  ; Dejar seleccionada la familia que ha especificado el usuario en el Bono

indice = 0;
encontrado = false;            

            foreach (Control obj in familias1.Controls)
            {
               if (obj is ComboBox)
               {
                   foreach(object objeto in ((ComboBox)obj).Items)
                   {
                       FamiliasTR prueba = (FamiliasTR)objeto;
                       if ( prueba.Codigo == bonoConsulta.Codfamilia)
                       {
                          encontrado = true;
                          break;
                       }
                        indice++;
                   }

                   if (encontrado)
                   {
                       
                      //Aquí necesito adicionar la línea de código para cambiar el SelectedIndex
                     // pero solo tengo el siguiente dato

                        this.familias1.Controls. ......... = indice ;

                       

                   }                      
                   
               }
                   
            }          

            #endregion              

Gracias a los que me puedan ayudar
--------------------------------------------------------

porque no intentas buscarlo dentrol del usercontrol y castear a combobox

por ejemplo:

ComboBox cb = (ComboBox)familias1.findcontrol("namecombo");
cb.selectindex = 0;
La lógica lleva a más lógica

Apoyo a un mundo OPEN SOURCE!!!

Eso si es el paraíso