none
Cómo hacer para que un comboBox muestre el primer valor en blanco?

    Question

  •   Hola a todos de nuevo.

     Tengo un problema con un comboBox. Quiero que muestre un primer valor, seleccionado por defecto, en blanco, o vacío, o NULL, o ------ (se entiende, no?)

     He leído que con .NET 1.0 se solucionaba simplemente con poner selectedIndex dos veces seguidas a -1. Sin embargo, con .NET 2.0 no encuentro la forma de hacerlo, ya que esto no funciona en esta nueva versión.

     El combo está puesto con dropDownStyle = DropDownList para que tengan que seleccionar una opción a coj... a narices, vaya.

     A ver si alguien puede decirme como arreglarlo.

     Gracias a quien responda y suerte a quien le pase lo mismo que a mi.

     

     P.D. El problema que tenía con los comboBoxes ya lo he solucionado PepLluis, por lo menos de momento. Muchas gracias.

    Saturday, December 02, 2006 8:56 AM

Answers

  •    Muchas gracias David, me ha funcionado a las mil maravillas y he descubierto donde tenía el problema.

       Lo explico para que si alguien está en mi situación pueda solucionarlo, no es necesario subir tu programa (aunque a mi me ha ido como anillo al dedo). Me explico, el motivo por el que a mi no me funcionaba es porque ponía la instrucción

    miComboBox.SelectedItem = null dentro del método InitializeComponent() y al cargar el DataSet se iba la selección a null a tomar por ...

       Bien, la solución es sencilla, en el método de carga del formulario, cuando se carga el DataSet, a continuación se pone a null la propiedad SelectedItem de todos los ComboBox que desees sin ningún problema.

       La solución era muy fácil, pero sin tu ayuda me habría pasado muchas horas más tirándome de los pelos.

       Gracias de nuevo por todo.

    Sunday, December 03, 2006 8:42 AM

All replies

  • Hola Ero.

    He revisado lo que comentas.

    En las pruebas que he hecho, el combo por defecto sale sin ningún elemento seleccionado.

    Por otro lado, en el caso de que necesites, una vez seleccionado un item, eliminar la selección para que te salga en blanco solo tienes que poner esto:

    this.comboBox1.SelectedItem = null;

    De esta forma se deshace la selección y vuelve a su estado inicial.

    Espero haber ayudado.

    Un Saludo

    David Herraiz

    • Proposed as answer by roberto1390 Friday, July 20, 2012 5:32 PM
    Saturday, December 02, 2006 9:37 AM
  •    Hola David. Es cierto lo que me dices, pero tal vez (sí o sí) se me haya olvidado comentar algo importante.

       El comportamiento que tú describes sucede cuando los elementos a mostrar en el ComboBox se añaden manualmente, pero yo los tengo asociados a un DataSet. Siento no haberme acordado de comentar esto. A ver si tú, o alguien, sabe como puede hacerse.

       Gracias de todos modos por tu respuesta.

    Saturday, December 02, 2006 5:03 PM
  • Hola de nuevo Ero.

    He estado haciendo un par de pruebas ... vamos, me he creado un dataset con 1 tablita dentro y le he agregado 100 registros a lo bobo y he conseguido lieberar el elemento seleccionado ... no estoy muy seguro de si me he dejado algo ... pero en mi ejemplo he conseguido que me libere el elemento seleccionado.

    Te paso por correo ( al correo de tu perfil ) el ejemplo que he hecho por si te sirve de ayuda ( si te digo la verdad no tengo ni idea de como hacer para subir aqui un fichero comprimido  para que cualquiera lo pille ).

    Lo dicho, ahora mismo te envio el correo.

    Un Saludo

    Saturday, December 02, 2006 9:38 PM
  •    Muchas gracias David, me ha funcionado a las mil maravillas y he descubierto donde tenía el problema.

       Lo explico para que si alguien está en mi situación pueda solucionarlo, no es necesario subir tu programa (aunque a mi me ha ido como anillo al dedo). Me explico, el motivo por el que a mi no me funcionaba es porque ponía la instrucción

    miComboBox.SelectedItem = null dentro del método InitializeComponent() y al cargar el DataSet se iba la selección a null a tomar por ...

       Bien, la solución es sencilla, en el método de carga del formulario, cuando se carga el DataSet, a continuación se pone a null la propiedad SelectedItem de todos los ComboBox que desees sin ningún problema.

       La solución era muy fácil, pero sin tu ayuda me habría pasado muchas horas más tirándome de los pelos.

       Gracias de nuevo por todo.

    Sunday, December 03, 2006 8:42 AM
  • Hola Ero.

     

    Como bien dices la solución era sencilla cuando cargas el Form por primera vez, pero cuando ya estás dentro del Form y tienes diversos contenedores como podría ser un TabControl con TabPages diversos, en los que el primer control de cada uno de ellos es un ComboBox enlazado a datos, y tu rutina de trabajo es provocar los saltos automáticamente entre TabPages para facilitar la vida al usuario en función de ciertas condiciones, pués en dichos casos, el ComboBox aunque le indiques "SelectItem = null o SelectIndex = -1", una vez o varias o combinaciones de ellas, pues nunca funciona y el ComboBox siempre te muestra por defecto un valor de la lista.

     

    Posiblemente te hayas encontrado también con dicha situación.

     

    Saludos.

     

     

    Wednesday, May 21, 2008 6:54 AM
  • La solucion anteriormente comentada, funciona en un formulario, si el combo esta en primer plano del formulario.

    Vamos a ver si me explico. Hice un formulario de reportes, en donde cargaba los distintos reportes en un gridview y los filtros de cada uno de los reportes en los tabpages de un tabControl. Al ejecutar el formulario, al seleccionar un reporte del gridview, lo que hacia era ocultar los tabpages y mostraba el tabpage con los filtros correspondientes a la selección.

    Generalmente los filtros eran combos y los cargaba en el load del formulario, y queria que seleccionado el reporte aparecieran los combos en blanco y no con un item seleccionado, y para esto utilice la instruccion ComboX.SelectItem = null., despues de cargar los combos.

    Mi problema era que al seleccionar el reporte los combos del filtro aparecian ya mostrando un item. Osea no me mostraba inicialmente un valor en blanco, apesar de la instrucción.

    Yo lo solucioné poniendo la instrucción ComboX.SelectItem = null, en el evento que me hacia aparecer el tabpage correspondiente y no en el load del formulario.

    Tengo dudas si serà por la instrucción que me oculta los tabPage que es   tabPage2.Parent = null; y para aparecer                 tabPage1.Parent = tabControl1. Tal vez esto afecte y sea el responsable que no funcione en el load.

    Y lo de primer plano me refiero a que el combo o los combos aparecen al instante de cargar el formulario, ahi si la instrucción funciona en el load, no importa si esta dentro de un control.

     

    Tuesday, August 10, 2010 9:33 PM
  • Hola, esta respuesta me ha servido de ayuda, pero yo tengo otro problema.

    Yo cargo los valores de la base de datos, como haceis y establezco el selectedItem a null para que me muestre en blanco el comboBox, pero cuando despliegas el comboBox y seleccionas un item de los de la lista no puedes volver al valor "null"

    Me explico, yo tengo una base de datos donde voy a meter productos, pero tengo un campo que es cliente, que me muestra todos los clientes.

    Entonces yo cuando doy de alta un producto, ese producto puedo o no ingresarsarlo con un "dni" de cliente, ya que este no es una clave primaria ni alternativa ni unica. Simplemente es un campo por si el producto que he adquirido es para un cliente o para mi mismo, para mi stock.

    Como puedo tener un valor por defecto en el comboBox, sin tener que registrarlo en la tabla Clientes?

    Un saludo y grácias.

    Monday, May 19, 2014 8:18 PM
  • Hola Abel:

     Podrias crear una nueva pregunta con tu caso, mencionando como es que cargas el combobox y como es que tienes implementada la logica para el insert, tal vez tu problema se solucion con un isertar un item vacio en la fuente de datos pero me gustaria saber como lo estas intentando...


    Saludos desde Monterrey, Nuevo León, México!!!

    Monday, May 19, 2014 8:27 PM