ComboBox - Principal / Secundario

17/07/2006 - 07:15 por Cristian | Informe spam
Estimados,

En un formulario windows hecho en VB.Net 2003 tengo 2 comboboxs; principal y
secundario.
Principal contiene (por ejemplo) los continentes, y el secundario los países
del continente seleccionado en el combobox principal.
La carga de "continentes" en el combobox principal lo tengo implementado en
el evento "load" del formulario de la siguiente manera.

cboPrin.DataSource = ds.Tables(0)
cboPrin.DisplayMember = ds.Tables(0).Columns(0).ColumnName
cboPrin.ValueMember = ds.Tables(0).Columns(0).ColumnName

Ademas tengo el evento "SelectedIndexChanged" para cargar los datos de
"Países" en el combobox secundario (de la misma forma que cargo el combobox
principal). Todo lo anterior con procedimientos almacenados (SQL 2000).

El problema es que en el evento load, al cargar el combobox principal, por
cada elemento que se "agrega" al combo, se ejecuta el evento
"SelectedIndexChanged" y se llena el combo secundario, o sea, para el
ejemplo, va 7 veces (por cada continente) a cargar los paises en el combo
secundario (se conecta 7 veces a la bd) y luego de eso se muestra el
formulario al usuario.

Quiero evitar que en la carga inicial (Load) se ejecute el evento
"SelectedIndexChanged". En otras palabras, quiero cargar sólo el combo
principal en la carga del formulario (que no se ejecute el
"SelectedIndexChanged" en el load dle frm), y que cuando el usuario escoja un
continente, sólo en ese momento se cargue el combo secundario de países.

Quedo atento a sus sugerencias.

Atte.
Cristian.
 

Leer las respuestas

#1 frank
17/07/2006 - 09:35 | Informe spam
hola,

prueba de meter el llenado del combo en el load, dentro de cbo.BeginUpdate()
y cbo.EndUpdate();

saludos

"Cristian" escribió en el mensaje
news:
Estimados,

En un formulario windows hecho en VB.Net 2003 tengo 2 comboboxs; principal


y
secundario.
Principal contiene (por ejemplo) los continentes, y el secundario los


países
del continente seleccionado en el combobox principal.
La carga de "continentes" en el combobox principal lo tengo implementado


en
el evento "load" del formulario de la siguiente manera.

cboPrin.DataSource = ds.Tables(0)
cboPrin.DisplayMember = ds.Tables(0).Columns(0).ColumnName
cboPrin.ValueMember = ds.Tables(0).Columns(0).ColumnName

Ademas tengo el evento "SelectedIndexChanged" para cargar los datos de
"Países" en el combobox secundario (de la misma forma que cargo el


combobox
principal). Todo lo anterior con procedimientos almacenados (SQL 2000).

El problema es que en el evento load, al cargar el combobox principal, por
cada elemento que se "agrega" al combo, se ejecuta el evento
"SelectedIndexChanged" y se llena el combo secundario, o sea, para el
ejemplo, va 7 veces (por cada continente) a cargar los paises en el combo
secundario (se conecta 7 veces a la bd) y luego de eso se muestra el
formulario al usuario.

Quiero evitar que en la carga inicial (Load) se ejecute el evento
"SelectedIndexChanged". En otras palabras, quiero cargar sólo el combo
principal en la carga del formulario (que no se ejecute el
"SelectedIndexChanged" en el load dle frm), y que cuando el usuario escoja


un
continente, sólo en ese momento se cargue el combo secundario de países.

Quedo atento a sus sugerencias.

Atte.
Cristian.

Preguntas similares