2010-11-07 10 views
6

He creado un WinForms ListView como vista de detalle con cuatro columnas. He dado a cada columna un nombre en el diseñador, sin embargo, al acceder a cada ColumnHeader a través de la propiedad ListView.Columns, encuentro que cada ColumnHeader.Name es una cadena vacía. ¿Estoy haciendo algo mal o es esto un error de framework?ListView ColumnHeader.Name es cadena vacía

Respuesta

6

Soy capaz de recrear el mismo comportamiento. Creo que definitivamente debe ser un error, ya que está implícito que el valor será establecido correctamente por el diseñador.

Como solución alternativa, puede poner el nombre en la propiedad Etiqueta también. (O configúrelo programáticamente en el constructor, pero eso no funcionará bien si necesita agregar una columna en el diseñador más adelante. Preferiría ir sin usar el diseñador para inicializar las columnas).

Encontré algo de discusión en este here - parece que este es un problema conocido, también van con el truco de etiquetas.

+0

El truco de la función "FixColumnNames" funciona bien. Sorprendentemente (?) No se solucionó en .NET 4.0. – Larry

-1

he tenido el mismo problema, pero trabajaron alrededor de él así:

foreach (ColumnHeader CN in listView1.Columns) 
{ 
    //I added listbox for this example, but my code uses it 
    //to populate an excell spreadsheet 

    listBox1.Items.Add(CN.Text.ToString()); 

} 

espera que usted pueda utilizar esto de alguna manera.

+0

¿Por qué el voto a favor? –

+0

Answere tarde, pero OP está buscando 'Name' (los elementos se llaman a sí mismo) y no' Text' (que en realidad es solo un título). – Dwza