ListView.View Proprietà

Definizione

Ottiene o imposta il modo in cui gli elementi vengono visualizzati nel controllo.

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

Valore della proprietà

Uno dei valori di View. Il valore predefinito è LargeIcon.

Eccezioni

Il valore specificato non è uno dei valori di View.

Esempio

Nell'esempio di codice seguente viene creato un ListView controllo con tre ListViewItem oggetti specificati e tre ListViewItem.ListViewSubItem oggetti specificati per ogni elemento. L'esempio crea ColumnHeader anche oggetti per visualizzare gli elementi secondari nella visualizzazione dettagli. Nell'esempio di codice vengono creati anche due ImageList oggetti per fornire immagini per gli ListViewItem oggetti . Questi ImageList oggetti vengono aggiunti alle LargeImageList proprietà e SmallImageList . Nell'esempio vengono utilizzate le proprietà seguenti per la creazione del ListView controllo .

In questo esempio è necessario aggiungere il codice a un Form oggetto e chiamare il metodo creato nell'esempio dal costruttore o da un altro metodo nel form. L'esempio richiede anche che le immagini denominate MySmallImage1, MySmallImage2MyLargeImage1, e MyLargeImage2 si trovino nella directory radice dell'unità 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

Commenti

La View proprietà consente di specificare il tipo di visualizzazione utilizzato dal ListView controllo per visualizzare gli elementi. È possibile impostare la View proprietà per visualizzare ogni elemento con icone grandi o piccole o elementi visualizzati in un elenco verticale. L'opzione più ricca è la visualizzazione dei dettagli, che consente di visualizzare non solo gli elementi, ma anche gli elementi secondari specificati per ogni elemento. Ogni elemento viene visualizzato in una griglia, con ogni elemento elencato verticalmente e gli elementi secondari per ogni elemento visualizzato in una colonna, con intestazioni di colonna. La visualizzazione dei dettagli è un modo perfetto per visualizzare le informazioni del database a un utente. Con Windows XP e Windows Server 2003 è anche possibile visualizzare elementi come riquadri che bilanciano le informazioni grafiche e testuali mostrando un'icona di grandi dimensioni insieme alle informazioni sull'elemento secondario desiderato. Per abilitare la visualizzazione riquadro, l'applicazione deve chiamare il Application.EnableVisualStyles metodo . La visualizzazione immagine piccola visualizza ogni elemento con un'icona e informazioni testuali a destra dell'icona. La visualizzazione immagine di grandi dimensioni visualizza ogni elemento con un'icona e informazioni testuali sotto l'icona. Le dimensioni delle icone per l'elenco di immagini vengono specificate dalla ImageSize proprietà dell'oggetto ImageList per le SmallImageList proprietà o LargeImageList .

Nota

Se si usano più elenchi di immagini, per la visualizzazione icona piccola e grande, con un ListView controllo è consigliabile inserire versioni piccole e grandi dell'immagine nella stessa posizione di indice nei rispettivi elenchi di immagini. Quando si passa da una visualizzazione all'altra, la posizione dell'indice dell'immagine in un elenco viene usata per individuare l'immagine nell'altro elenco, indipendentemente dal valore della chiave specificato.

La maggior parte delle proprietà nel ListView controllo influisce sul comportamento o la visualizzazione delle diverse visualizzazioni. Alcune proprietà che influiscono sulle visualizzazioni degli elementi sono utili solo quando la View proprietà è impostata su un valore specifico, mentre altre sono utili in tutte le visualizzazioni. Ad esempio, le proprietà come GridLines e FullRowSelect sono utili solo quando la View proprietà è impostata su View.Details, mentre le MultiSelect proprietà e CheckBoxes sono utili in tutte le visualizzazioni.

La tabella seguente mostra alcuni ListView membri e le visualizzazioni in cui sono validi.

Membro ListView Visualizza
ProprietàAlignment SmallIcon o LargeIcon
ProprietàAutoArrange SmallIcon o LargeIcon
Metodo AutoResizeColumn Details
CheckBoxes Tutte le visualizzazioni tranne Tile
ProprietàColumns Details o Tile
EventoDrawSubItem Details
Metodo FindItemWithText Details, Listo Tile
Metodo FindNearestItem SmallIcon o LargeIcon
Metodo GetItemAt Details o Tile
ProprietàGroups Tutte le visualizzazioni tranne List
ProprietàHeaderStyle Details
ProprietàInsertionMark LargeIcon, SmallIcono Tile

È possibile usare la View proprietà per fornire visualizzazioni diverse dei dati nell'applicazione o per bloccare una visualizzazione specifica per utilizzare i vantaggi di tale visualizzazione. Ad esempio, la View proprietà viene spesso impostata su View.Details perché la visualizzazione dettagli fornisce una serie di opzioni di visualizzazione non disponibili nelle altre visualizzazioni.

Nota

Se il ListView controllo non dispone di intestazioni di colonna specificate e si imposta la View proprietà su View.Details, il ListView controllo non visualizzerà alcun elemento. Se il ListView controllo non dispone di intestazioni di colonna specificate e si imposta la View proprietà su View.Tile, il ListView controllo non visualizzerà alcun elemento secondario.

La visualizzazione riquadro visualizza ogni elemento con un'icona grande a sinistra e informazioni testuali a destra. Le informazioni testuali sono costituite dall'etichetta dell'elemento seguita da elementi secondari. Per impostazione predefinita, viene visualizzato solo il primo elemento secondario, che corrisponde all'etichetta dell'elemento. Per visualizzare elementi secondari aggiuntivi, è necessario aggiungere ColumnHeader oggetti alla Columns raccolta. Ogni elemento secondario nel riquadro corrisponde a un'intestazione di colonna. Per controllare quali elementi secondari vengono visualizzati e l'ordine in cui vengono visualizzati, è necessario impostare la ListViewItem.ListViewSubItem.Name proprietà per ogni elemento e la ColumnHeader.Name proprietà per ogni intestazione. È quindi possibile aggiungere, rimuovere e riorganizzare le intestazioni nella Columns raccolta per ottenere il risultato desiderato.

Per controllare le dimensioni dei riquadri nella visualizzazione riquadro, impostare la TileSize proprietà . Ciò è utile per impedire il ritorno a capo automatico quando il testo dell'elemento secondario è troppo lungo per una singola riga.

Per un esempio della visualizzazione riquadro, vedere la TileSize proprietà .

Nota

Anche se le colonne vengono visualizzate solo nella visualizzazione dettagli, gli elementi secondari senza intestazioni di colonna non verranno visualizzati nella visualizzazione dettagli o nella visualizzazione riquadro.

La visualizzazione riquadro è disponibile solo in Windows XP e Windows Server 2003 quando l'applicazione chiama il Application.EnableVisualStyles metodo . Nei sistemi operativi precedenti, qualsiasi codice correlato alla visualizzazione affiancata non ha alcun effetto e il controllo ListView viene visualizzato nella visualizzazione Icone grandi. Di conseguenza, qualsiasi codice che dipende dalla visualizzazione riquadro potrebbe non funzionare correttamente.

È possibile includere codice che determina se la visualizzazione riquadro è disponibile e fornire funzionalità alternative quando non è disponibile. Ad esempio, quando si utilizza il disegno proprietario per personalizzare l'aspetto degli ListView elementi nella visualizzazione riquadro, è possibile usare il codice di disegno appropriato per la visualizzazione icona di grandi dimensioni quando è in esecuzione nei sistemi operativi che non supportano la visualizzazione riquadro.

La funzionalità di visualizzazione riquadri è fornita dalla stessa libreria che fornisce la funzionalità temi del sistema operativo. Per verificare la disponibilità di questa libreria, chiamare l'overload del FeatureSupport.IsPresent(Object) metodo e passare il OSFeature.Themes valore .

Si applica a

Vedi anche