ListView.View Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém ou define como os itens são apresentados no controlo.
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 Propriedade
Um dos View valores. A predefinição é LargeIcon.
Exceções
O valor especificado não é um dos View valores.
Exemplos
O exemplo de código seguinte cria um ListView controlo com três ListViewItem objetos especificados e três ListViewItem.ListViewSubItem objetos especificados para cada item. O exemplo também cria ColumnHeader objetos para mostrar os subitens na visualização de detalhes. Dois ImageList objetos também são criados no exemplo de código para fornecer imagens para os ListViewItem objetos. Estes ImageList objetos são adicionados às LargeImageList propriedades e.SmallImageList O exemplo utiliza as seguintes propriedades na criação do ListView controlo.
Este exemplo exige que tenha adicionado o código a Form e que chame o método criado no exemplo a partir do construtor ou de outro método no formulário. O exemplo também exige que as imagens nomeadas MySmallImage1, MySmallImage2, MyLargeImage1, e MyLargeImage2 estejam localizadas no diretório raiz da unidade 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
Observações
A View propriedade permite-lhe especificar o tipo de ecrã que o ListView controlo utiliza para exibir os itens. Pode definir a View propriedade para mostrar cada item com ícones grandes ou pequenos ou mostrar os itens numa lista vertical. A opção mais rica é a vista de detalhes, que permite visualizar não só os itens, mas também quaisquer subitens especificados para cada item. Cada item é apresentado numa grelha, com cada item listado verticalmente e os subitens de cada item apresentados numa coluna, com cabeçalhos de colunas. A visualização de detalhes é uma forma perfeita de mostrar a informação da base de dados ao utilizador. Com o Windows XP e o Windows Server 2003, também pode apresentar itens como mosaicos que equilibram informação gráfica e textual, mostrando um grande ícone juntamente com subitens à sua escolha. Para ativar a visualização de tiles, a sua aplicação deve chamar o Application.EnableVisualStyles método. A vista de imagem pequena mostra cada item com um ícone e informações textuais à direita do ícone. A vista em grande escala mostra cada item com um ícone e informações textuais abaixo do ícone. O tamanho dos ícones para a lista de imagens é especificado pela ImageSize propriedade das ImageList propriedades for the SmallImageList ou LargeImageList .
Note
Se estiver a usar várias listas de imagens, para visualização de ícones pequenos e grandes, com um ListView controlo, deve colocar versões pequenas e grandes da imagem na mesma localização de índice nas respetivas listas de imagens. Ao alternar entre vistas, a localização do índice da imagem numa lista é usada para localizar a imagem na outra lista, independentemente do valor-chave especificado.
A maioria das propriedades no ListView controlo afeta como as diferentes vistas se comportam ou são exibidas. Algumas propriedades que afetam as vistas dos itens só são úteis quando a View propriedade está definida para um valor específico, enquanto outras são úteis em todas as vistas. Por exemplo, propriedades como GridLines e FullRowSelect só são úteis quando a View propriedade está definida como View.Details, enquanto as MultiSelect propriedades e CheckBoxes são úteis em todas as vistas.
A tabela seguinte mostra alguns dos ListView membros e as opiniões em que são válidos.
| Membro do ListView | View |
|---|---|
| Alignment propriedade | SmallIcon ou LargeIcon |
| AutoArrange propriedade | SmallIcon ou LargeIcon |
| AutoResizeColumn método | Details |
| CheckBoxes | Todas as opiniões, exceto Tile |
| Columns propriedade | Details ou Tile |
| evento DrawSubItem | Details |
| FindItemWithText método | Details, List ou Tile |
| FindNearestItem método | SmallIcon ou LargeIcon |
| GetItemAt método | Details ou Tile |
| Groups propriedade | Todas as opiniões, exceto List |
| HeaderStyle propriedade | Details |
| InsertionMark propriedade | LargeIcon, SmallIcon ou Tile |
Pode usar a View propriedade para fornecer diferentes vistas de dados na sua aplicação, ou para bloquear uma vista específica para aproveitar os benefícios dessa visualização. Por exemplo, a View propriedade é frequentemente definida para View.Details porque a vista de detalhes oferece várias opções de visualização que não estão disponíveis nas outras vistas.
Note
Se o seu ListView controlo não tiver cabeçalhos de coluna especificados e definir a View propriedade para View.Details, o controlo ListView não mostrará nenhum item. Se o seu ListView controlo não tiver cabeçalhos de coluna especificados e definir a View propriedade para View.Tile, o controlo ListView não mostrará quaisquer subitens.
A vista em tiles mostra cada item com um grande ícone à esquerda e informação textual à direita. A informação textual consiste no rótulo do item seguido dos subitens. Por defeito, apenas o primeiro subitem é exibido, que corresponde à etiqueta do item. Para exibir subitens adicionais, deve adicionar ColumnHeader objetos à Columns coleção. Cada subitem na peça corresponde a um cabeçalho de coluna. Para controlar quais subitens são exibidos e a ordem em que são apresentados, deve definir a ListViewItem.ListViewSubItem.Name propriedade para cada item e a ColumnHeader.Name propriedade para cada cabeçalho. Pode então adicionar, remover e reorganizar cabeçalhos na Columns coleção para alcançar o resultado desejado.
Para controlar o tamanho dos tiles na vista de tiles, defina a TileSize propriedade. Isto é útil para evitar o enrolamento de linhas quando o texto dos subitens é demasiado longo para uma única linha.
Para um exemplo da vista de azulejos, veja a TileSize propriedade.
Note
Embora as colunas só sejam exibidas na vista de detalhes, os subitens sem cabeçalhos de coluna não serão exibidos nem na vista de detalhes nem na vista de mosaicos.
A vista de tiles está disponível apenas em Windows XP e Windows Server 2003, quando a sua aplicação chama o método Application.EnableVisualStyles. Nos sistemas operativos mais antigos, qualquer código relacionado com a vista de tile não tem efeito, e o ListView controlo é exibido na vista de ícones grandes. Como resultado, qualquer código que dependa da vista tile pode não funcionar corretamente.
Pode querer incluir código que determine se a vista tile está disponível e fornecer funcionalidades alternativas quando esta não estiver disponível. Por exemplo, quando usa o desenho do proprietário para personalizar a aparência dos ListView itens na vista de tiles, pode querer usar código de desenho adequado à vista de ícones grandes ao correr em sistemas operativos que não suportam a vista de tile.
A funcionalidade de visualização de tiles é fornecida pela mesma biblioteca que fornece a funcionalidade de temas do sistema operativo. Para verificar a disponibilidade desta biblioteca, chama o FeatureSupport.IsPresent(Object) método overload e passa o OSFeature.Themes valor.