Título: Cómo seleccionar elemento ComboBox por índice Publicado por: novalida en 10 Diciembre 2010, 22:47 pm Hola!!!
Me gustaría saber si alguien me puede ayudar pues tengo una duda al intentar mejorar un pequeño programa con el que estoy aprendiendo. Tengo un control ComboBox en el que he añadido elementos y sus índices a partir de una base de datos, por lo que cada elemento queda identificado por cada índice. El caso es que me gustaría poder seleccionar el elemento a partir de un índice que se introdujera en un TextBox. En el caso de los meses, por ejemplo, introducir 1 en el TextBox, pulsar un botón, y sería seleccionado en el ComboBox el elemento "Enero". Por otro lado me gustaría saber si alguien me puede indicar algun ebook de Visual Basic 6.0 que sea bueno y completo, ya que no encuentro demasiada información al respecto. Un saludo y espero respuesta :) Título: Re: Cómo seleccionar elemento ComboBox por índice Publicado por: ignorantev1.1 en 10 Diciembre 2010, 23:16 pm Código
No se si te referias a esto :rolleyes: Título: Re: Cómo seleccionar elemento ComboBox por índice Publicado por: frekency en 10 Diciembre 2010, 23:27 pm Creo que con esto ya te lo coge
Private Sub Command1_Click() Combo1.ListIndex = Text1.Text End Sub Sino le haces un cast a integer y listo Combo1.ListIndex = Cint (text1.text) Título: Re: Cómo seleccionar elemento ComboBox por índice Publicado por: ignorantev1.1 en 10 Diciembre 2010, 23:40 pm Código
Título: Re: Cómo seleccionar elemento ComboBox por índice Publicado por: Edu en 11 Diciembre 2010, 00:05 am Te falta leer mas entonces primero, porq necesitarias usar el Select q cuando leas sabras a q me refiero, busca en google:
elguille.info por si no es asi y busca tutorial de vb6 de el q son buenos y largos.. xD Título: Re: Cómo seleccionar elemento ComboBox por índice Publicado por: novalida en 11 Diciembre 2010, 00:14 am Muy buenas!!!
Muchas gracias por responder tan rápido. Bueno, lo que me habeis indicado ya lo había intentado y no me funciona. Así cargué con los datos el ComboBox: Código:
Al hacer lo que me proponéis siempre sale un elemento por debajo. Es decir, el índice del combobox es 0, pero yo le indiqué para el elemento "Enero" el índice 1. Al indicarle en el textbox el índice 1 me cambia el combobox a "Febrero" y no "Enero". :S XXX-ZERO-XXX , gracias por responder, pero no veo el uso del Select para lo que yo quiero, el cual es que el valor asociado a cada elemento de un combobox estará ligado al id asociado a ese elemento dentro una base de datos. EL ejemplo de los meses es algo sencillo para poder exponer mejor la duda que tengo. Título: Re: Cómo seleccionar elemento ComboBox por índice Publicado por: Edu en 11 Diciembre 2010, 00:20 am Ah pense q era algo mas facil , te entendi mal, y por lo q sabes supuestamente no necesitaras el manual q te dije q leas je, y yo sigo sin entender q quieres hacer xD
Título: Re: Cómo seleccionar elemento ComboBox por índice Publicado por: novalida en 11 Diciembre 2010, 00:29 am XXX-ZERO-XXX , no te preocupes, quizás no me explico muy bien.
A ver si lo puedo hacer mejor :) He creado un ComboBox de esta manera, y a cada elemento le asigno un índice: Enero 1, Febrero 2, etc... Código:
La respuesta que me han dado: Código:
Según esta respuesta, si en el TextBox pongo 1, el evento Command1_Click() selecciona el elemento "Febrero" y no "Enero" como yo quería que ocurriese. Título: Re: Cómo seleccionar elemento ComboBox por índice Publicado por: raul338 en 11 Diciembre 2010, 00:42 am novalida, el ItemData es un espacio extra en el que puedes meter algun dato. no es el index necesariamente
Creo recordar en el metodo Add tienes para poner un index especifico, lo tendrias que hacer asi Código
:) espero que te sirva, si no entiendes me dices, estoy algo apurado y contesto rapido :xD Título: Re: Cómo seleccionar elemento ComboBox por índice Publicado por: novalida en 11 Diciembre 2010, 00:54 am raul338, gracias por contestar. He entendido que a un elemento se le puede asociar un valor Integer a través del ItemData. Quizás hibiese sido más correcto denominar el asunto de la duda como Cómo seleccionar elemento ComboBox por su ItemData :)
Ya había intentado la solución que me propones, pero no sé por qué al poner .AddItem ("Enero", 1) me da el error: Se esperaba: = Se me acaba de ocurrir esta solución: Código:
No sé si es la única solución, pero si hay una que sea más elegante me gustaría conocerla. Con VB6 no tengo mucha experiencia y quizás no se me ocurre algo que sea más sencillo. Título: Re: Cómo seleccionar elemento ComboBox por índice Publicado por: raul338 en 11 Diciembre 2010, 01:06 am novalida, el itemdata es un espacio extra (como una variable mas), pongas lo que le pongas, no afecta en nada en absoluto al ComboBox.
Ya sabes que los indices empiezan de 0, lo que puedes hacer es que el item que quieres seleccionar, le restes uno. ej Código
No te preocupes del -1, en caso de que el text este vacio (o no tenga numeros) el resultado es -1, lo que significa que ningun item se seleccionara (estara vacio, bueno, eso depende del estilo del combo) Si quieres seleccionar enero poniendo 1, seleccionara el 0. Esto funciona a menos que el combobox este ordenado y el orden afecte el orden de los indices. Para estos casos no queda otra que hace ComboBox1.Text = "Enero" y que windows se encarge de buscarlo :xD Título: Re: Cómo seleccionar elemento ComboBox por índice Publicado por: novalida en 11 Diciembre 2010, 01:14 am raul338 , sí, tienes razón, esa sería la respuesta más lógica, pero lo que pretendía era no hacer referencia a la propiedad .Text, pues no queda muy elegante para asegurar la integridad al trabajar con una base de datos, cayendo fácilmente en la creación de una aplicación hard code.
Título: Re: Cómo seleccionar elemento ComboBox por índice Publicado por: BlackZeroX en 11 Diciembre 2010, 02:34 am .
Cada item del Combo al indicarle el indice 1, 2 etc, no implica que sea su identificador solo le dice al objeto que quieres que el nuevo item sea ese indice Todos los demas "items" solo son recorridos. Aquí un pequeño ejemplo que arme. Código
Si estas con Ado solo pasale un en la propiedad "DataSource" el RecordSet y listo se llenara automaticamente el ComboBox. Dulces Lunas!¡. . Título: Re: Cómo seleccionar elemento ComboBox por índice Publicado por: raul338 en 11 Diciembre 2010, 02:38 am novalida, Eso depende del entorno de la conexion que uses. Yo siempre trabajo en entorno desconectado (no enlazo controles, sino que hago una clase que haga las llamadas, la propiedad Text no invoca al evento Change, por lo que no se entra en un ciclo infinito)
De todas formas no es que sea algo "uuuyyy que feo", creeme, hay cosas peores :xD BlackZeroX, no entendi tu punto :-\ :silbar: Título: Re: Cómo seleccionar elemento ComboBox por índice Publicado por: BlackZeroX en 11 Diciembre 2010, 02:45 am .
por lo que lei quiere agregar un tecto que lo identifique el index, bueno solo agrege dicho codigo como ejemplo ya que si agrega indicando el Index es erroneo, es decir, si agregue en un caso anterior un objeto con Index 2 por ejemplo y ya tengo 42 elementos solo le indico al objeto que agregue dicho elemento en la posicion 3 de la lista ( esto se ve claramente en el codigo anterior ). Ahora lo que veo que que si va a trabajar con una BDD es mejor que cree una tabla donde agregue los meses, por ende, con ADO ya en el programna solo realiza dicha consulta y lo vacia en un RecordSet y el mismo lo vacia en la propiedad DataSource si no me equivoco claro... De esta manera se agregan los elementos en la posicion deseada con su ID indicado y en orden (obviamente si le hace un additem en un index ya ocupado habra un error como ya expuse) De manera mas breve... del por que puse el codigo de arriba... Al hacer lo que me proponéis siempre sale un elemento por debajo. Es decir, el índice del combobox es 0, pero yo le indiqué para el elemento "Enero" el índice 1. Al indicarle en el textbox el índice 1 me cambia el combobox a "Febrero" y no "Enero". :S Lo que pasa que de forma interna el comboBox, no trabaja con "tags" en los elementos es decir si le indicas 1 no vale Ahora si trabajas con una BDD el ID deberia de empezar por 0, pero oigual DataSource del ComboBox NO ASEGURA QUE cada elemento se encuentre definido por un Index, esto ya deberas de manejarlo en un RecordSet en memoria y no en un control, ya que la mayoria de los controles que trabajan con elementos y su consulta es por propiedad index habitualmente estos empiesan SIN SALTARSE desde 0 hasta CantidadDeElementos -1 Dulces Lunas!¡. Título: Re: Cómo seleccionar elemento ComboBox por índice Publicado por: pushuno en 24 Marzo 2013, 01:26 am novalida, buscando una solucion a lo mismo entre en tu post y como no pude encontrar en ningun lado una respuesta me armé una funcion que se encargue de esto.
Código: Public Function seleccionarPorItemData(cmb As ComboBox, sel As Integer) espero te sirva, abrazo Pushuno! Título: Re: Cómo seleccionar elemento ComboBox por índice Publicado por: KaRoMe en 19 Octubre 2017, 08:59 am Se que en este momento ni al caso pero x si alguien entra a leer el detalle que no notaron es q el queria decirle al combo box que al introducir el 1 pusiera enero cuando en realidad la lista arranca en 0 osea solo era de decirle al textbox que le restara 1 al numero que el usuario ingresara
|