2012-01-24 35 views
10

Estoy luchando por encontrar el control correcto para usar en una lista de trabajos predefinidos en el formulario incluido. Actualmente tengo un ListBoxControl en el grupo Nombre del trabajo predefinido que enumera todos los trabajos predefinidos para un taller de servicio marítimo (es decir, cambio de aceite, ajuste, etc.). Luego, en función del elemento (es decir, el nombre del trabajo) que está seleccionado en mi ListBox, necesito mostrar los elementos que corresponden a ese trabajo. Por ejemplo, si el cambio de aceite es el trabajo seleccionado, necesito mostrar 4 cuartos de aceite, 1 filtro de aceite, mano de obra, etc. ... y así sucesivamente.Cómo ocultar ListView ColumnHeader?

Actualmente, cuando cargo los datos del formulario, tengo un DAO que recupera todos mis trabajos de la base de datos usando LINQ to SQL. Luego repito los resultados y pongo los nombres de los trabajos en el ListBox. El problema que estoy teniendo es que no hay ninguna etiqueta para los elementos ListBox como hay para los artículos ListView. Por lo tanto, cada vez que el usuario selecciona otro elemento en el ListBox, tengo que realizar otra consulta LINQ para obtener el trabajo de la base de datos nuevamente para que pueda mostrar sus 'elementos correspondientes. Si pudiera usar un ListView y esconder el encabezado de la columna, podría establecer todo el trabajo en la etiqueta para que cada vez que el usuario selecciona un nuevo elemento tuviera acceso a los detalles sin tener que hacer otra llamada a la base de datos. ¿Hay alguna manera de ocultar el encabezado de columna de un ListView sin ocultar toda la columna?

Windows Form

+0

me gustaría utilizar una cuadrícula si se deben mostrar datos tabulares, creo en un GridView puede ocultar la HeaderRow. –

+0

Su modo 'Ver' está establecido en' Detalles'. ¿Por qué no configurarlo en 'List'? – InBetween

Respuesta

43

Puede configurar el HeaderStyle miembro de la ListView-None.

listView1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;

7

Pedido ListView HeaderStyle propiedad. Tiene las siguientes opciones:

  1. Ninguno
  2. Nonclickable
  3. Clickable

De MSDN:

La propiedad HeaderStyle le permite especificar si los encabezados de las columnas son visibles o , si son visibles, si funcionarán como botones clicables. Si la propiedad se establece en HeaderStyle ColumnHeaderStyle.None, los encabezados de columna no se muestran, a pesar de los elementos y subelementos del control ListView todavía están dispuestos en columnas

1

También puede crear el objeto simple como ListItem que tiene dos poperties: Text (cadena) y Tag (objeto). Luego implemente ListItem.ToString() y también puede usarlos en el ListBox.

También puede consultar el componente Better ListView Express, que es gratuito y permite mostrar los artículos en Detalles ver sin columnas. La ventaja sobre ListBox y ListView es un aspecto nativo y muchas características adicionales.

0

Descubrí que si usted está seguro de que no está mostrando los encabezados, es mejor configurar la propiedad HeaderStyle en Ninguno, como menciona Rajesh anteriormente.

Al configurar en el .CS cuando la pantalla se carga inicialmente, los encabezados se muestran hasta que la pantalla se muestra por completo.

1

Una forma sencilla es utilizar el evento ColumnWidthChanging

private void listViewExtended1_ColumnWidthChanging(object sender, ColumnWidthChangingEventArgs e) 
     { 
      if (e.ColumnIndex == 0) 
      { 
       e.Cancel = true; 
       e.NewWidth = listViewExtended1.Columns[e.ColumnIndex].Width; 
      } 
     } 
Cuestiones relacionadas