Quiero tener multi-columna en mi ListBox. A continuación está el ejemplo de la imagen la tengo en mi aplicación.

Multi-columna de datos en el ListBox

La verdad es que tengo alrededor de 7 columnas, pero imprime sólo dos columnas, para que sea más fácil de entender.

Así, la primera columna diría date y la segunda columna diría name. Como se puede ver, los datos no van en sus propias columnas.

Este es mi código:

this.listBox1 = new System.Windows.Forms.ListBox();
this.SuspendLayout();
//
//listBox1
//
this.listBox1.FormattingEnabled = true;
this.listBox1.HorizontalScrollbar = true;
foreach (XmlNode xn in xnList)
{
string date = xn.OfType<XmlNode>().FirstOrDefault(n => n.Name == "Date").FirstChild.Value;
string id = xn.OfType<XmlNode>().FirstOrDefault(n => n.Name == "ID").FirstChild.Value;
if (date == cari)
{
this.listBox1.Items.AddRange(new object[] {                    
//dateBox.Text,
dateBox.Text + "\r\n" + date});
this.listBox1.Items.AddRange(new object[] {                    
"sarabrown"});
}
}
this.listBox1.Location = new System.Drawing.Point(12, 28);
this.listBox1.MultiColumn = true;
this.listBox1.Name = "listBox1";
this.listBox1.ScrollAlwaysVisible = true;
this.listBox1.Size = new System.Drawing.Size(300, 95);
this.listBox1.TabIndex = 0;
this.listBox1.ColumnWidth = 100;
//
//Form3
//
this.ClientSize = new System.Drawing.Size(400, 273);
this.Controls.Add(this.listBox1);
this.Name = "Form3";
this.ResumeLayout(false);

He encontrado este código allí, pero crea un cuadro de lista que se ve igual que el de la foto de arriba. Hay alguien que sabe acerca de esto?

¿Tienes algo en contra de el uso de un DataGridView?
tienen que buscar un vistazo a este enlace? codeproject.com/Articles/2377/Multi-Column-List-Box-in-C
posibles duplicados de C# de varias columnas de cuadro de lista

OriginalEl autor sara brown | 2012-08-09

3 Comentarios

  1. 4

    Las varias columnas de propiedades de cuadro de lista sólo ayuda a evitar el desplazamiento vertical por lo tanto, acaba pilas el desborde de los elementos en la columna siguiente. El requisito que tiene no está disponible por defecto en .NET. Por lo tanto, usted puede construir su propio control personalizado para apoyar eso.

    Por cierto, GridView es tu amigo.. Lo que usted necesita es fácilmente alcanzable mediante GridView.
    Por ejemplo, para hacer que sea simplista (puede que tenga que ajustar esta completamente para adaptarse a su problema)

    protected void MyGridView_PreRender(object sender, EventArgs e)
    {
    DataSet myDataSet = new DataSet();
    myDataSet.ReadXml(new StringReader(myXmlDoc.OuterXml));
    GridView gv = (GridView)sender;
    gv.DataSource = myDataSet;
    gv.DataBind();
    }

    ACTUALIZACIÓN:

    Puede que desee comprobar hacia fuera el ListView en lugar de GridView o ListBox.

    Marque esta ejemplo para dar una idea.

    O esta otra que es más sencillo: El uso de control ListView en C#.

    Con esto también se puede poner en otros controles en las diferentes columnas, como casillas de verificación.

    Esto es relativamente ligero de un GridView.

    he intentado esto y dice «no se puede convertir de [,] a []». entonces traté de quitar la ‘,’ y se imprime el mismo.
    ese código no funciona porque no es compatible .NET. El de varias columnas de la propiedad es para otra cosa, como se describe anteriormente (lo sé, es engañosa).

    OriginalEl autor Kash

  2. 0

    Para MutliColumn en el cuadro de lista en C#, esto está funcionando bien

    listBox1.Items.AddRange(
    new object[]
    {
    "Name","Aman"
    }
    );
    No. Esto no es de varias columnas. El ejemplo de agregar un rango de valores, uno por cada fila.

    OriginalEl autor Aman Dhally

  3. 0

    Creo que no entendieron bien el uso de varias columnas de la propiedad en el cuadro de lista.

    De MSDN :

    Un mismo ListBox lugares de elementos en tantas columnas como sea necesario para hacer que el desplazamiento vertical innecesarios.

    Así que esto es sólo una cosa para evitar el desplazamiento.

    Si desea mostrar varias columnas con datos separados sobre cada columna, le sugiero que utilice ListView.

    OriginalEl autor Martin Verjans

Dejar respuesta

Please enter your comment!
Please enter your name here