2011-04-21 15 views
6

Tengo una aplicación (winforms, C#) que muestra datos en una vista de lista de una manera muy habitual: la primera fila es encabezados, la primera columna de cada fila es encabezado y los siguientes subelementos son los datos mismos.lista de vistas de winforms: ¿la primera columna siempre está visible?

Quiero que la primera columna (las columnas de encabezados) siempre esté visible y que la barra horizontal solo afecte a las otras columnas.

no creo que sea posible en winforms listview (¿estoy equivocado?). Por lo tanto, estoy pensando en dividir la vista de lista en dos listas de vista, una para los encabezados y la segunda para los datos. En ese caso, necesito conectar las barras de desplazamiento verticales, una tarea que encuentro más difícil de lo que esperaba.

¿Estoy tomando una ruta incorrecta (por ejemplo, sería más fácil usar un control diferente)? Si no, ¿algún indicador sobre cómo implementarlo?

Nota: Winforms Listview tiene mala API (por ejemplo, ningún caso de desplazamiento) y se conoce como errores, así que estoy buscando una muestra de trabajo en lugar de enlaces de MSDN ...

Gracias

Respuesta

7

Como ya se ha señalado DataGridView soporta este comportamiento, pero nadie dijo cómo esto se hará:

Para activar esta función, simplemente establece la propiedad Frozen de una columna. Más información también se puede encontrar en este How to: Freeze Columns in the Windows Forms DataGridView Control.

+0

ammm ... el enlace está muerto ... –

+0

sí, pero solo por unos minutos (aparece el mismo mensaje de error). Pero ahora funciona de nuevo como un encanto. (Muy extraño). Para hacerlo más fácil en el futuro, reemplacé el texto por el nombre completo del artículo. Entonces, si el enlace está muerto nuevamente, puedes buscarlo mejor. – Oliver

+0

gracias. He agregado otro en la respuesta. –

1

¿Intentaste usando DataGridView en su lugar?

Editar:

En caso de que tenga problemas con la configuración de texto encabezados de fila, echar un vistazo a este post (básicamente, se establece el texto de encabezado de fila sobre el artículo que se añade a la red).

1

Creo que tiene que intentar usar el DatagridView en lugar del listbox. Hasta donde yo sé, DataGridView lo admite.

Cuestiones relacionadas