Proprietà ListView.View
Assembly: System.Windows.Forms (in system.windows.forms.dll)
La proprietà View consente di specificare il tipo di visualizzazione degli elementi utilizzato nel controllo ListView. È possibile impostare la proprietà View in modo da visualizzare ciascun elemento tramite icone grandi o piccole oppure visualizzare gli elementi in un elenco verticale. La visualizzazione di dettaglio è la più accurata e consente di visualizzare gli elementi e tutti gli elementi secondari specificati per ciascuno di essi. Ciascun elemento viene visualizzato in una griglia con intestazioni di colonna, all'interno di un elenco verticale, e gli elementi secondari di ciascun elemento vengono visualizzati in una colonna. La visualizzazione di dettaglio rappresenta la modalità di visualizzazione ottimale per le informazioni di database. In Windows XP e Windows Server 2003 è inoltre possibile visualizzare gli elementi come finestre che bilanciano le informazioni grafiche e testuali mediante la visualizzazione di un'icona grande al lato delle informazioni relative all'elemento secondario scelto. Per attivare la visualizzazione affiancata, l'applicazione deve chiamare il metodo Application.EnableVisualStyles. La visualizzazione a immagini piccole visualizza ogni elemento con un'icona e le informazioni testuali a destra dell'icona. La visualizzazione a immagini grandi visualizza ogni elemento con un'icona e le informazioni testuali sotto l'icona. Le dimensioni delle icone dell'elenco di immagini sono specificate dalla proprietà ImageSize della classe ImageList per le proprietà SmallImageList o LargeImageList.
La maggior parte delle proprietà nel controllo ListView influiscono sul funzionamento e sull'aspetto delle differenti visualizzazioni disponibili. Alcune di queste proprietà risultano utili solo se la proprietà View è impostata su un valore specifico, mentre altre risultano utili in tutte le visualizzazioni. Le proprietà GridLines e FullRowSelect, ad esempio, risultano utili solo se la proprietà View è impostata su View.Details, mentre le proprietà MultiSelect e CheckBoxes sono utili in tutte le visualizzazioni.
Nella tabella riportata di seguito vengono illustrati alcuni dei membri ListView e le visualizzazioni in cui sono valide.
| Membro ListView | Visualizzazione |
|---|---|
| Proprietà Alignment | SmallIcon oppure LargeIcon |
| Proprietà AutoArrange | SmallIcon oppure LargeIcon |
| Metodo AutoResizeColumn | Details |
| CheckBoxes | Tutte le visualizzazioni tranne Tile |
| Proprietà Columns | Details oppure Tile |
| Evento DrawSubItem | Details |
| Metodo FindItemWithText | Details, List oppure Tile |
| Metodo FindNearestItem | SmallIcon oppure LargeIcon |
| Metodo GetItemAt | Details oppure Tile |
| Proprietà Groups | Tutte le visualizzazioni tranne List |
| Proprietà HeaderStyle | Details |
| Proprietà InsertionMark | LargeIcon, SmallIcon oppure Tile |
È possibile utilizzare la proprietà View per fornire visualizzazioni differenti dei dati dell'applicazione o bloccare una visualizzazione specifica per sfruttarne i relativi vantaggi. La proprietà View, ad esempio, è spesso impostata su View.Details, poiché le opzioni di visualizzazione disponibili nella visualizzazione di dettaglio sono maggiori rispetto a quelle delle altre visualizzazioni.
Nota |
|---|
| Se nel controllo ListView non è specificata alcuna intestazione di colonna e si imposta la proprietà View su View.Details, nel controllo ListView non verrà visualizzato alcun elemento. Se nel controllo ListView non è specificata alcuna intestazione di colonna e si imposta la proprietà View su View.Tile, nel controllo ListView non verrà visualizzato alcun elemento secondario. |
La visualizzazione affiancata visualizza ogni elemento con un'icona grande a sinistra e le informazioni testuali a destra. Le informazioni testuali sono formate dall'etichetta dell'elemento seguita dagli elementi secondari. Per impostazione predefinita, viene visualizzato solo il primo elemento secondario, che corrisponde all'etichetta dell'elemento. Per visualizzare gli elementi secondari aggiuntivi, è necessario aggiungere oggetti ColumnHeader all'insieme Columns. Ogni elemento secondario nella finestra corrisponde a un'intestazione di colonna. Per decidere quali elementi secondari visualizzare e il loro ordine di visualizzazione, è necessario impostare la proprietà ListViewItem.ListViewSubItem.Name per ciascun elemento e la proprietà ColumnHeader.Name per ciascuna intestazione. È quindi possibile aggiungere, rimuovere e riordinare le intestazioni nell'insieme Columns fino ad ottenere il risultato desiderato.
Per controllare le dimensioni delle finestre nella visualizzazione affiancata, impostare la proprietà TileSize. Ciò risulta utile per evitare l'invio a capo delle righe se il testo di un elemento secondario è troppo lungo per essere visualizzato su un'unica riga.
Per un esempio della visualizzazione affiancata, vedere la proprietà TileSize.
Nota |
|---|
| Sebbene le colonne vengano visualizzate solo nella vista Dettagli, gli elementi secondari senza intestazioni di colonna non verranno visualizzati né nella visualizzazione Dettagli né in quella affiancata. |
La visualizzazione affiancata è disponibile solo in Windows XP e in Windows Server 2003 quando il metodo Application.EnableVisualStyles viene chiamato dall'applicazione. Su sistemi operativi precedenti, il codice relativo alla visualizzazione affiancata non ha effetto e il controllo ListView mostra la visualizzazione Icone grandi. Di conseguenza, il codice dipendente dalla visualizzazione affiancata potrebbe non funzionare correttamente.
È opportuno includere del codice per stabilire se la visualizzazione affiancata è disponibile e, in caso contrario, fornire una funzionalità alternativa. Ad esempio, se si utilizza il disegno personalizzato per personalizzare l'aspetto degli elementi ListView nella visualizzazione affiancata, è opportuno utilizzare il codice di creazione appropriato alla visualizzazione Icone grandi se l'applicazione viene eseguita su sistemi operativi che non supportano la visualizzazione affiancata.
La funzionalità di visualizzazione affiancata è disponibile nella stessa libreria che fornisce le funzionalità dei temi del sistema operativo. Per controllare la disponibilità di tale libreria, chiamare l'overload del metodo FeatureSupport.IsPresent(Object) e passare nel valore OSFeature.Themes.
Nell'esempio di codice riportato di seguito viene creato un controllo ListView con tre oggetti ListViewItem specificati e tre oggetti ListViewItem.ListViewSubItem specificati per ciascun elemento. nonché alcuni oggetti ColumnHeader per la visualizzazione degli elementi secondari nella visualizzazione Dettagli. Nel codice di esempio vengono inoltre creati due oggetti ImageList che forniscono immagini per gli oggetti ListViewItem. Questi oggetti ImageList vengono aggiunti alle proprietà LargeImageList e SmallImageList. Nell'esempio vengono utilizzate le seguenti proprietà per la creazione del controllo ListView.
-
View
-
CheckBoxes
-
FullRowSelect
-
GridLines
In questo esempio si presuppone che sia stato aggiunto il codice a una classe Form e che sia stato chiamato il metodo creato nell'esempio dal costruttore o un altro metodo nel form. Si presuppone inoltre che le immagini denominate MySmallImage1, MySmallImage2, MyLargeImage1 e MyLargeImage2 siano memorizzate nella directory principale dell'unità C.
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. 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 void CreateMyListView()
{
// Create a new ListView control.
ListView listView1 = new ListView();
listView1.set_Bounds(new Rectangle(new Point(10, 10),
new Size(300, 200)));
// Set the view to show details.
listView1.set_View(View.Details);
// Allow the user to edit item text.
listView1.set_LabelEdit(true);
// Allow the user to rearrange columns.
listView1.set_AllowColumnReorder(true);
// Display check boxes.
listView1.set_CheckBoxes(true);
// Select the item and subitems when selection is made.
listView1.set_FullRowSelect(true);
// Display grid lines.
listView1.set_GridLines(true);
// Sort the items in the list in ascending order.
listView1.set_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.set_Checked(true);
item1.get_SubItems().Add("1");
item1.get_SubItems().Add("2");
item1.get_SubItems().Add("3");
ListViewItem item2 = new ListViewItem("item2", 1);
item2.get_SubItems().Add("4");
item2.get_SubItems().Add("5");
item2.get_SubItems().Add("6");
ListViewItem item3 = new ListViewItem("item3", 0);
// Place a check mark next to the item.
item3.set_Checked(true);
item3.get_SubItems().Add("7");
item3.get_SubItems().Add("8");
item3.get_SubItems().Add("9");
// Create columns for the items and subitems.
listView1.get_Columns().Add("Item Column", -2,
HorizontalAlignment.Left);
listView1.get_Columns().Add("Column 2", -2, HorizontalAlignment.Left);
listView1.get_Columns().Add("Column 3", -2, HorizontalAlignment.Left);
listView1.get_Columns().Add("Column 4", -2, HorizontalAlignment.Center);
//Add the items to the ListView.
listView1.get_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.get_Images().Add(Bitmap.FromFile(
"C:\\MySmallImage1.bmp"));
imageListSmall.get_Images().Add(Bitmap.FromFile(
"C:\\MySmallImage2.bmp"));
imageListLarge.get_Images().Add(Bitmap.FromFile(
"C:\\MyLargeImage1.bmp"));
imageListLarge.get_Images().Add(Bitmap.FromFile(
"C:\\MyLargeImage2.bmp"));
//Assign the ImageList objects to the ListView.
listView1.set_LargeImageList(imageListLarge);
listView1.set_SmallImageList(imageListSmall);
// Add the ListView to the control collection.
this.get_Controls().Add(listView1);
} //CreateMyListView
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile per Pocket PC, Windows Mobile per Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.
Nota