Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: vinceet en 6 Noviembre 2014, 23:55 pm



Título: [AYUDA]llenar un Combobox c#
Publicado por: vinceet en 6 Noviembre 2014, 23:55 pm
Hola Necesito ayuda de como llenar un combobox apartir de una lista
ejemplo que yo le pregunte el genero de musica que le gusta a la persona que se guarde en una lista y luego salga en el combobox



Título: Re: [AYUDA]llenar un Combobox c#
Publicado por: DarK_FirefoX en 7 Noviembre 2014, 04:04 am
Tienes tu TextBox (userInput), un Button (addGenre), el ComboBox (genresComboBox).
No se como tendrás hecho las cosas, porque la verdad no das mucha información. Bueno, imagino que tengas algo como

Código
  1. List<string> genres;

Luego, en el constructor de tu formulario (o donde debas hacerlo de acuerdo a tu aplicación) debes inicializar la lista:

Código
  1. genres = new List<string>();

Ahora en el evento onClick del botón debes tener esto:

Código
  1. private void addGenre_Click(object sender, EventArgs e)
  2. {
  3.    genres.Add(userInput.Text);
  4.    genresComboBox.Items.Add(userInput.Text);
  5. }

Esta quizás no sea la mejor manera de hacerlo, pero es la más sencilla.

Si tienes alguna duda, pregunta de nuevo


Título: Re: [AYUDA]llenar un Combobox c#
Publicado por: Eleкtro en 7 Noviembre 2014, 06:53 am
ComboBox.ObjectCollection.AddRange Method (http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.objectcollection.addrange%28v=vs.110%29.aspx)
Cita de: http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.objectcollection.addrange%28v=vs.110%29.aspx
Adds an array of items to the list of items for a ComboBox.

List(T).ToArray Method (http://msdn.microsoft.com/en-us/library/x303t819%28v=vs.110%29.aspx)
Cita de: http://msdn.microsoft.com/en-us/library/x303t819%28v=vs.110%29.aspx
Copies the elements of the List<T> to a new array.

VB.Net
Código
  1. Dim list As New List(Of String) From
  2.    {
  3.        "a",
  4.        "b",
  5.        "c"
  6.    }
  7.  
  8. With ComboBox1
  9.    .DropDownStyle = ComboBoxStyle.DropDownList
  10.    .SuspendLayout()
  11.    .Items.AddRange(list.ToArray)
  12.    .SelectedIndex = 0
  13.    .ResumeLayout()
  14. End With

Csharp
Código
  1. List<string> list = new List<string> {
  2. "a",
  3. "b",
  4. "c"
  5. };
  6.  
  7. var _with1 = ComboBox1;
  8. _with1.DropDownStyle = ComboBoxStyle.DropDownList;
  9. _with1.SuspendLayout();
  10. _with1.Items.AddRange(list.ToArray);
  11. _with1.SelectedIndex = 0;
  12. _with1.ResumeLayout();
  13.  
  14. //=======================================================
  15. //Service provided by Telerik (www.telerik.com)
  16. //=======================================================


Título: Re: [AYUDA]llenar un Combobox c#
Publicado por: vinceet en 7 Noviembre 2014, 15:57 pm
Esta es mi lista

Código:
public static List<Disco> listaDisco = new List<Disco>();

Esta es mi clase
Código:
class Disco
    {
        public string titulo;
        public string genero;
        public int año;
        public string autor;
        public double precio;
        public DateTime fecha_registro;
    }

Yo quiero que cuando yo llene el genero buscarlo en la lista todos los generos y que salga en el combobox

Ejemplo este es mi metodo para llenar un datagrid
Código:
foreach (Disco aux in Lista.listaDisco)
            {
                if (aux.genero == textBox1.Text)
                {
                   
                    dataGridView1.Rows.Add(aux.titulo, aux.genero, aux.año, aux.autor, aux.precio, aux.fecha_registro);

                }
                else
                {
                    dataGridView1.Rows.Clear();
                }

necesito saber como llenar el combobox asi


Título: Re: [AYUDA]llenar un Combobox c#
Publicado por: Eleкtro en 7 Noviembre 2014, 16:56 pm
No se si lo he entendido bien...

Instancias una lista de la Class Disco, y lo que quieres hacer es llenar un ComboBox que contenga los distintos "Generos" da los items de la lista de Disco?

Entonces solo tienes que seleccionar la propiedad "genero" de cada item Disco, lo puedes hacer con una query de LINQ o con un For:

VB.Net
Código
  1. Imports System.Globalization
  2. Imports System.Threading
  3.  
  4. Public Class Form1
  5.  
  6.    Public Shared listaDisco As New List(Of Disco) From
  7.        {
  8.            New Disco With {.titulo = "a", .genero = "Rock"},
  9.            New Disco With {.titulo = "b", .genero = "Pop"},
  10.            New Disco With {.titulo = "c", .genero = "Dubstep"},
  11.            New Disco With {.titulo = "d", .genero = "dubstep"}
  12.        }
  13.  
  14.    Class Disco
  15.        Public titulo As String
  16.        Public genero As String
  17.        Public año As Integer
  18.        Public autor As String
  19.        Public precio As Double
  20.        Public fecha_registro As DateTime
  21.    End Class
  22.  
  23.    Private Sub test() Handles MyBase.Shown
  24.  
  25.        Dim currentCulture As CultureInfo = Thread.CurrentThread.CurrentCulture
  26.        Dim textInfo As TextInfo = currentCulture.TextInfo()
  27.  
  28.        Dim genres As IEnumerable(Of String) =
  29.            (From disc As Disco In listaDisco
  30.             Select textInfo.ToTitleCase(disc.genero)
  31.             Distinct)
  32.  
  33.        With ComboBox1
  34.            .Sorted = True
  35.            .SuspendLayout()
  36.            .Items.AddRange(genres.ToArray)
  37.            .SelectedIndex = 0
  38.            .ResumeLayout()
  39.        End With
  40.  
  41.    End Sub
  42.  
  43. End Class

CSharp:
Código
  1. using Microsoft.VisualBasic;
  2. using System;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. using System.Data;
  6. using System.Diagnostics;
  7. using System.Globalization;
  8. using System.Threading;
  9.  
  10. public class Form1
  11. {
  12.  
  13. public static List<Disco> listaDisco = new List<Disco> {
  14. new Disco {
  15. titulo = "a",
  16. genero = "Rock"
  17. },
  18. new Disco {
  19. titulo = "b",
  20. genero = "Pop"
  21. },
  22. new Disco {
  23. titulo = "c",
  24. genero = "Dubstep"
  25. },
  26. new Disco {
  27. titulo = "d",
  28. genero = "dubstep"
  29. }
  30.  
  31. };
  32.  
  33. public class Disco
  34. {
  35. public string titulo;
  36. public string genero;
  37. public int año;
  38. public string autor;
  39. public double precio;
  40. public DateTime fecha_registro;
  41. }
  42.  
  43.  
  44. private void test()
  45. {
  46. CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;
  47. TextInfo textInfo = currentCulture.TextInfo();
  48.  
  49. IEnumerable<string> genres = (from disc in listaDiscotextInfo.ToTitleCase(disc.genero));
  50.  
  51. var _with1 = ComboBox1;
  52. _with1.Sorted = true;
  53. _with1.SuspendLayout();
  54. _with1.Items.AddRange(genres.ToArray);
  55. _with1.SelectedIndex = 0;
  56. _with1.ResumeLayout();
  57.  
  58. }
  59. public Form1()
  60. {
  61. Shown += test;
  62. }
  63.  
  64. }
  65.  
  66. //=======================================================
  67. //Service provided by Telerik (www.telerik.com)
  68. //Conversion powered by NRefactory.
  69. //=======================================================
  70.  


Título: Re: [AYUDA]llenar un Combobox c#
Publicado por: vinceet en 7 Noviembre 2014, 17:46 pm
Muchas Gracias ya encontre la forma gracias a ustedes lo que yo queria hacer esra esto es que soy principiante y no me se explicar bien