2010-08-22 45 views

Respuesta

13

Voy a abordar el ángulo de IU. Se puede ocultar ajustando el ancho de columna a 0. Por ejemplo, si el ID se une a la segunda columna:

public partial class Form1 : Form { 
    public Form1() { 
     InitializeComponent(); 
     listView1.Columns[1].Width = 0; 
     listView1.ColumnWidthChanging += listView1_ColumnWidthChanging; 
    } 

    private void listView1_ColumnWidthChanging(object sender, ColumnWidthChangingEventArgs e) { 
     if (e.ColumnIndex == 1) { 
      e.NewWidth = 0; 
      e.Cancel = true; 
     } 
    } 
} 

No es bastante ideal, el usuario puede obtener confuzzled por el cursor 'splitter' que muestra cuando está un poco demasiado a la derecha del divisor de la columna. Eso es muy difícil de arreglar.

2

cómo ocultar/mostrar columnas de vista de lista

C#, .NET framework 3.5.

Es fácil ocultar y mostrar columnas de vista de lista, si utiliza la vista de lista en "modo virtual". En "modo virtual", usted es responsable de completar los elementos de la lista con los datos. Esto hace posible poner los datos correctos en la columna correcta.

Permítanme demostrar:

crear un formulario, y añadir un control ListView y un control de botón. Agregue 3 columnas al control de vista de lista. Establezca la propiedad "ver" del control listview en "Detalles". Establezca la propiedad "VirtualMode" del control listview en "True". Establezca la propiedad "VirtualListSize" del control listview en "100".

Añadir un bool a la forma:

private bool mblnShow = true; 

añadir el evento “RetrieveVirtualItem” para el control de vista de lista, y añadir el siguiente código:

ListViewItem objListViewItem = new ListViewItem(); 
objListViewItem.Text = "Item index: " + e.ItemIndex.ToString(); 
if (mblnShow) objListViewItem.SubItems.Add("second column: " +  DateTime.Now.Millisecond.ToString()); 
objListViewItem.SubItems.Add("third column: " + DateTime.Now.Millisecond.ToString()); 
e.Item = objListViewItem; 

añadir el evento “Click” para la botón de control y agregue el código siguiente:

mblnShow = !mblnShow; 
if (mblnShow && !this.listView1.Columns.Contains(this.columnHeader2)) this.listView1.Columns.Insert(1, this.columnHeader2); 
else if (!mblnShow && this.listView1.Columns.Contains(this.columnHeader2)) 
    this.listView1.Columns.Remove(this.columnHeader2); 

Ejecute la aplicación y presione th e botón para mostrar y ocultar la segunda columna.

Tenga en cuenta que ejecutar una vista de lista en modo virtual generará un error si coloca datos en la colección de elementos. Hay mucho más sobre el modo virtual, así que sugiero leer sobre él antes de usarlo.