ListView.View Propiedad

Definición

Obtiene o establece cómo se muestran los elementos en el control.

public:
 property System::Windows::Forms::View View { System::Windows::Forms::View get(); void set(System::Windows::Forms::View value); };
public System.Windows.Forms.View View { get; set; }
member this.View : System.Windows.Forms.View with get, set
Public Property View As View

Valor de propiedad

Uno de los valores de View. De manera predeterminada, es LargeIcon.

Excepciones

El valor especificado no es ninguno de los valores de View.

Ejemplos

En el ejemplo de código siguiente se crea un ListView control con tres ListViewItem objetos especificados y tres ListViewItem.ListViewSubItem objetos especificados para cada elemento. En el ejemplo también se crean ColumnHeader objetos para mostrar los subelementos en la vista de detalles. También se crean dos ImageList objetos en el ejemplo de código para proporcionar imágenes para los ListViewItem objetos . Estos ImageList objetos se agregan a las LargeImageList propiedades y SmallImageList . En el ejemplo se usan las siguientes propiedades para crear el ListView control .

Este ejemplo requiere que haya agregado el código a y Form llame al método creado en el ejemplo desde el constructor u otro método del formulario. El ejemplo también requiere que las imágenes denominadas MySmallImage1, MySmallImage2MyLargeImage1, y MyLargeImage2 se encuentren en el directorio raíz de la unidad C.

private:
   void CreateMyListView()
   {
      // Create a new ListView control.
      ListView^ listView1 = gcnew ListView;
      listView1->Bounds = Rectangle(Point(10,10),System::Drawing::Size( 300, 200 ));

      // Set the view to show details.
      listView1->View = View::Details;

      // Allow the user to edit item text.
      listView1->LabelEdit = true;

      // Allow the user to rearrange columns.
      listView1->AllowColumnReorder = true;

      // Display check boxes.
      listView1->CheckBoxes = true;

      // Select the item and subitems when selection is made.
      listView1->FullRowSelect = true;

      // Display grid lines.
      listView1->GridLines = true;

      // Sort the items in the list in ascending order.
      listView1->Sorting = SortOrder::Ascending;

      // Create three items and three sets of subitems for each item.
      ListViewItem^ item1 = gcnew ListViewItem( "item1",0 );

      // Place a check mark next to the item.
      item1->Checked = true;
      item1->SubItems->Add( "1" );
      item1->SubItems->Add( "2" );
      item1->SubItems->Add( "3" );
      ListViewItem^ item2 = gcnew ListViewItem( "item2",1 );
      item2->SubItems->Add( "4" );
      item2->SubItems->Add( "5" );
      item2->SubItems->Add( "6" );
      ListViewItem^ item3 = gcnew ListViewItem( "item3",0 );

      // Place a check mark next to the item.
      item3->Checked = true;
      item3->SubItems->Add( "7" );
      item3->SubItems->Add( "8" );
      item3->SubItems->Add( "9" );

      // Create columns for the items and subitems.
      // Width of -2 indicates auto-size.
      listView1->Columns->Add( "Item Column", -2, HorizontalAlignment::Left );
      listView1->Columns->Add( "Column 2", -2, HorizontalAlignment::Left );
      listView1->Columns->Add( "Column 3", -2, HorizontalAlignment::Left );
      listView1->Columns->Add( "Column 4", -2, HorizontalAlignment::Center );

      //Add the items to the ListView.
      array<ListViewItem^>^temp1 = {item1,item2,item3};
      listView1->Items->AddRange( temp1 );

      // Create two ImageList objects.
      ImageList^ imageListSmall = gcnew ImageList;
      ImageList^ imageListLarge = gcnew ImageList;

      // Initialize the ImageList objects with bitmaps.
      imageListSmall->Images->Add( Bitmap::FromFile( "C:\\MySmallImage1.bmp" ) );
      imageListSmall->Images->Add( Bitmap::FromFile( "C:\\MySmallImage2.bmp" ) );
      imageListLarge->Images->Add( Bitmap::FromFile( "C:\\MyLargeImage1.bmp" ) );
      imageListLarge->Images->Add( Bitmap::FromFile( "C:\\MyLargeImage2.bmp" ) );

      //Assign the ImageList objects to the ListView.
      listView1->LargeImageList = imageListLarge;
      listView1->SmallImageList = imageListSmall;
      
      // Add the ListView to the control collection.
      this->Controls->Add( listView1 );
   }
private void CreateMyListView()
{
    // Create a new ListView control.
    ListView listView1 = new ListView();
    listView1.Bounds = new Rectangle(new Point(10,10), new Size(300,200));

    // Set the view to show details.
    listView1.View = View.Details;
    // Allow the user to edit item text.
    listView1.LabelEdit = true;
    // Allow the user to rearrange columns.
    listView1.AllowColumnReorder = true;
    // Display check boxes.
    listView1.CheckBoxes = true;
    // Select the item and subitems when selection is made.
    listView1.FullRowSelect = true;
    // Display grid lines.
    listView1.GridLines = true;
    // Sort the items in the list in ascending order.
    listView1.Sorting = SortOrder.Ascending;
                
    // Create three items and three sets of subitems for each item.
    ListViewItem item1 = new ListViewItem("item1",0);
    // Place a check mark next to the item.
    item1.Checked = true;
    item1.SubItems.Add("1");
    item1.SubItems.Add("2");
    item1.SubItems.Add("3");
    ListViewItem item2 = new ListViewItem("item2",1);
    item2.SubItems.Add("4");
    item2.SubItems.Add("5");
    item2.SubItems.Add("6");
    ListViewItem item3 = new ListViewItem("item3",0);
    // Place a check mark next to the item.
    item3.Checked = true;
    item3.SubItems.Add("7");
    item3.SubItems.Add("8");
    item3.SubItems.Add("9");

    // Create columns for the items and subitems.
    // Width of -2 indicates auto-size.
    listView1.Columns.Add("Item Column", -2, HorizontalAlignment.Left);
    listView1.Columns.Add("Column 2", -2, HorizontalAlignment.Left);
    listView1.Columns.Add("Column 3", -2, HorizontalAlignment.Left);
    listView1.Columns.Add("Column 4", -2, HorizontalAlignment.Center);

    //Add the items to the ListView.
    listView1.Items.AddRange(new ListViewItem[]{item1,item2,item3});

    // Create two ImageList objects.
    ImageList imageListSmall = new ImageList();
    ImageList imageListLarge = new ImageList();

    // Initialize the ImageList objects with bitmaps.
    imageListSmall.Images.Add(Bitmap.FromFile("C:\\MySmallImage1.bmp"));
    imageListSmall.Images.Add(Bitmap.FromFile("C:\\MySmallImage2.bmp"));
    imageListLarge.Images.Add(Bitmap.FromFile("C:\\MyLargeImage1.bmp"));
    imageListLarge.Images.Add(Bitmap.FromFile("C:\\MyLargeImage2.bmp"));

    //Assign the ImageList objects to the ListView.
    listView1.LargeImageList = imageListLarge;
    listView1.SmallImageList = imageListSmall;

    // Add the ListView to the control collection.
    this.Controls.Add(listView1);
}
Private Sub CreateMyListView()
    ' Create a new ListView control.
    Dim listView1 As New ListView()
    listView1.Bounds = New Rectangle(New Point(10, 10), New Size(300, 200))

    ' Set the view to show details.
    listView1.View = View.Details
    ' Allow the user to edit item text.
    listView1.LabelEdit = True
    ' Allow the user to rearrange columns.
    listView1.AllowColumnReorder = True
    ' Display check boxes.
    listView1.CheckBoxes = True
    ' Select the item and subitems when selection is made.
    listView1.FullRowSelect = True
    ' Display grid lines.
    listView1.GridLines = True
    ' Sort the items in the list in ascending order.
    listView1.Sorting = SortOrder.Ascending

    ' Create three items and three sets of subitems for each item.
    Dim item1 As New ListViewItem("item1", 0)
    ' Place a check mark next to the item.
    item1.Checked = True
    item1.SubItems.Add("1")
    item1.SubItems.Add("2")
    item1.SubItems.Add("3")
    Dim item2 As New ListViewItem("item2", 1)
    item2.SubItems.Add("4")
    item2.SubItems.Add("5")
    item2.SubItems.Add("6")
    Dim item3 As New ListViewItem("item3", 0)
    ' Place a check mark next to the item.
    item3.Checked = True
    item3.SubItems.Add("7")
    item3.SubItems.Add("8")
    item3.SubItems.Add("9")

    ' Create columns for the items and subitems.
    ' Width of -2 indicates auto-size.
    listView1.Columns.Add("Item Column", -2, HorizontalAlignment.Left)
    listView1.Columns.Add("Column 2", -2, HorizontalAlignment.Left)
    listView1.Columns.Add("Column 3", -2, HorizontalAlignment.Left)
    listView1.Columns.Add("Column 4", -2, HorizontalAlignment.Center)

    'Add the items to the ListView.
    listView1.Items.AddRange(New ListViewItem() {item1, item2, item3})

    ' Create two ImageList objects.
    Dim imageListSmall As New ImageList()
    Dim imageListLarge As New ImageList()

    ' Initialize the ImageList objects with bitmaps.
    imageListSmall.Images.Add(Bitmap.FromFile("C:\MySmallImage1.bmp"))
    imageListSmall.Images.Add(Bitmap.FromFile("C:\MySmallImage2.bmp"))
    imageListLarge.Images.Add(Bitmap.FromFile("C:\MyLargeImage1.bmp"))
    imageListLarge.Images.Add(Bitmap.FromFile("C:\MyLargeImage2.bmp"))

    'Assign the ImageList objects to the ListView.
    listView1.LargeImageList = imageListLarge
    listView1.SmallImageList = imageListSmall

    ' Add the ListView to the control collection.
    Me.Controls.Add(listView1)
End Sub

Comentarios

La View propiedad permite especificar el tipo de presentación que usa el ListView control para mostrar los elementos. Puede establecer la View propiedad para mostrar cada elemento con iconos grandes o pequeños o mostrar elementos en una lista vertical. La opción más rica es la vista de detalles, que permite ver no solo los elementos, sino los subelementos especificados para cada elemento. Cada elemento se muestra en una cuadrícula, con cada elemento enumerado verticalmente y los subelementos de cada elemento mostrado en una columna, con encabezados de columna. La vista de detalles es una manera perfecta de mostrar información de base de datos a un usuario. Con Windows XP y Windows Server 2003, también puedes mostrar elementos como iconos que equilibran la información gráfica y textual mostrando un icono grande junto con la información de subelemento de tu elección. Para habilitar la vista de mosaico, la aplicación debe llamar al Application.EnableVisualStyles método . La vista de imagen pequeña muestra cada elemento con un icono e información textual a la derecha del icono. La vista de imagen grande muestra cada elemento con un icono e información textual debajo del icono. El tamaño de los iconos de la lista de imágenes se especifica mediante la ImageSize propiedad de ImageList para las SmallImageList propiedades o LargeImageList .

Nota

Si usa varias listas de imágenes, para la vista de iconos pequeña y grande, con un ListView control, debe colocar versiones pequeñas y grandes de la imagen en la misma ubicación de índice en sus respectivas listas de imágenes. Al cambiar entre vistas, la ubicación del índice de la imagen de una lista se usa para buscar la imagen en la otra lista, independientemente del valor de clave especificado.

La mayoría de las propiedades del ListView control afectan a cómo se comportan o se muestran las distintas vistas. Algunas propiedades que afectan a las vistas de los elementos solo son útiles cuando la View propiedad se establece en un valor específico, mientras que otras son útiles en todas las vistas. Por ejemplo, las propiedades como GridLines y FullRowSelect solo son útiles cuando la View propiedad se establece View.Detailsen , mientras que las MultiSelect propiedades y CheckBoxes son útiles en todas las vistas.

En la tabla siguiente se muestran algunos de los ListView miembros y las vistas en las que son válidos.

Miembro de ListView Ver
PropiedadAlignment SmallIcon o LargeIcon
Propiedad AutoArrange SmallIcon o LargeIcon
Método AutoResizeColumn Details
CheckBoxes Todas las vistas, excepto Tile
Propiedad Columns Details o Tile
EventoDrawSubItem Details
Método FindItemWithText Details, Listo Tile
Método FindNearestItem SmallIcon o LargeIcon
Método GetItemAt Details o Tile
PropiedadGroups Todas las vistas, excepto List
Propiedad HeaderStyle Details
Propiedad InsertionMark LargeIcon, SmallIcono Tile

Puede usar la View propiedad para proporcionar diferentes vistas de los datos en la aplicación o para bloquear una vista específica para usar las ventajas de esa vista. Por ejemplo, la View propiedad suele establecerse View.Details en porque la vista de detalles proporciona una serie de opciones de visualización que no están disponibles en las otras vistas.

Nota

Si el ListView control no tiene ningún encabezado de columna especificado y establece la View propiedad View.Detailsen , el ListView control no mostrará ningún elemento. Si el ListView control no tiene ningún encabezado de columna especificado y establece la View propiedad View.Tileen , el ListView control no mostrará ningún subelemento.

La vista de mosaico muestra cada elemento con un icono grande a la izquierda e información textual a la derecha. La información textual consta de la etiqueta de elemento seguida de subelementos. De forma predeterminada, solo se muestra el primer subelemento, que corresponde a la etiqueta del elemento. Para mostrar subelementos adicionales, debe agregar ColumnHeader objetos a la Columns colección. Cada subelemento del icono corresponde a un encabezado de columna. Para controlar qué subelementos se muestran y el orden en que se muestran, debe establecer la ListViewItem.ListViewSubItem.Name propiedad para cada elemento y la ColumnHeader.Name propiedad de cada encabezado. A continuación, puede agregar, quitar y reorganizar encabezados en la Columns colección para lograr el resultado deseado.

Para controlar el tamaño de los iconos en la vista de mosaico, establezca la TileSize propiedad . Esto resulta útil para evitar el ajuste de línea cuando el texto del subelemento es demasiado largo para una sola línea.

Para obtener un ejemplo de la vista de mosaico, vea la TileSize propiedad .

Nota

Aunque las columnas solo se muestran en la vista de detalles, los subelementos sin encabezados de columna no se mostrarán en la vista de detalles ni en la vista de mosaico.

La vista de mosaico solo está disponible en Windows XP y Windows Server 2003 cuando la aplicación llama al Application.EnableVisualStyles método . En sistemas operativos anteriores, el código relacionado con la vista de mosaico no tiene ningún efecto y el control ListView se muestra en la vista de iconos grandes. Como resultado, es posible que cualquier código que dependa de la vista de mosaico no funcione correctamente.

Es posible que quiera incluir código que determine si la vista de mosaico está disponible y proporcionar funcionalidad alternativa cuando no está disponible. Por ejemplo, al usar el dibujo del propietario para personalizar la apariencia de los elementos en ListView la vista de mosaico, es posible que desee usar el código de dibujo adecuado para la vista de iconos grande cuando se ejecuta en sistemas operativos que no admiten la vista de mosaico.

La característica de vista de mosaico la proporciona la misma biblioteca que proporciona la característica de temas del sistema operativo. Para comprobar la disponibilidad de esta biblioteca, llame a la sobrecarga del FeatureSupport.IsPresent(Object) método y pase el OSFeature.Themes valor .

Se aplica a

Consulte también