Procedimiento para habilitar la vista en mosaico en un control ListView de formularios Windows Forms
Con la característica de vista de mosaico del control ListView, puede proporcionar equilibrio visual entre la información gráfica y de texto. La información de texto que se muestra para un elemento en la vista de mosaico es igual que la información de columna definida para la vista de detalles. La vista de mosaico funciona en combinación con las características de marca de inserción o agrupación del control ListView.
La vista de mosaico usa un icono de 32 x 32 píxeles y varias líneas de texto, tal y como se muestra en las siguientes imágenes.
Vista en mosaico de un control ListViewIconos y texto de la vista en mosaico
Para habilitar la vista de mosaico, establezca la propiedad View en Tile. Puede ajustar el tamaño de los mosaicos estableciendo la propiedad TileSize, y el número de líneas de texto que se muestran en el mosaico ajustando la colección Columns.
Para establecer la vista de mosaico mediante programación
Use la enumeración View del control ListView.
ListView1.View = View.Tile
listView1.View = View.Tile;
Ejemplo
En el siguiente ejemplo de código completo se muestra la vista de mosaico con mosaicos modificados para mostrar tres líneas de texto. El tamaño del mosaico se ha adaptado para evitar el ajuste de línea.
#using <System.dll>
#using <System.Windows.Forms.dll>
#using <System.Drawing.dll>
using namespace System;
using namespace System::Drawing;
using namespace System::Windows::Forms;
public ref class ListViewTilingExample: public Form
{
private:
ImageList^ myImageList;
public:
ListViewTilingExample()
{
// Initialize myListView.
ListView^ myListView = gcnew ListView;
myListView->Dock = DockStyle::Fill;
myListView->View = View::Tile;
// Initialize the tile size.
myListView->TileSize = System::Drawing::Size( 400, 45 );
// Initialize the item icons.
myImageList = gcnew ImageList;
System::Drawing::Icon^ myIcon = gcnew System::Drawing::Icon( "book.ico" );
try
{
myImageList->Images->Add( myIcon );
}
finally
{
if ( myIcon )
delete safe_cast<IDisposable^>(myIcon);
}
myImageList->ImageSize = System::Drawing::Size( 32, 32 );
myListView->LargeImageList = myImageList;
// Add column headers so the subitems will appear.
array<ColumnHeader^>^temp0 = {gcnew ColumnHeader,gcnew ColumnHeader,gcnew ColumnHeader};
myListView->Columns->AddRange( temp0 );
// Create items and add them to myListView.
array<String^>^temp1 = {"Programming Windows","Petzold, Charles","1998"};
ListViewItem^ item0 = gcnew ListViewItem( temp1,0 );
array<String^>^temp2 = {"Code: The Hidden Language of Computer Hardware and Software","Petzold, Charles","2000"};
ListViewItem^ item1 = gcnew ListViewItem( temp2,0 );
array<String^>^temp3 = {"Programming Windows with C#","Petzold, Charles","2001"};
ListViewItem^ item2 = gcnew ListViewItem( temp3,0 );
array<String^>^temp4 = {"Coding Techniques for Microsoft Visual Basic .NET","Connell, John","2001"};
ListViewItem^ item3 = gcnew ListViewItem( temp4,0 );
array<String^>^temp5 = {"C# for Java Developers","Jones, Allen & Freeman, Adam","2002"};
ListViewItem^ item4 = gcnew ListViewItem( temp5,0 );
array<String^>^temp6 = {"Microsoft .NET XML Web Services Step by Step","Jones, Allen & Freeman, Adam","2002"};
ListViewItem^ item5 = gcnew ListViewItem( temp6,0 );
array<ListViewItem^>^temp7 = {item0,item1,item2,item3,item4,item5};
myListView->Items->AddRange( temp7 );
// Initialize the form.
this->Controls->Add( myListView );
this->Size = System::Drawing::Size( 430, 330 );
this->Text = "ListView Tiling Example";
}
protected:
// Clean up any resources being used.
~ListViewTilingExample()
{
if ( myImageList != nullptr )
{
delete myImageList;
}
}
};
[STAThread]
int main()
{
Application::EnableVisualStyles();
Application::Run( gcnew ListViewTilingExample );
}
using System;
using System.Drawing;
using System.Windows.Forms;
public class ListViewTilingExample : Form
{
private ImageList myImageList;
public ListViewTilingExample()
{
// Initialize myListView.
ListView myListView = new ListView();
myListView.Dock = DockStyle.Fill;
myListView.View = View.Tile;
// Initialize the tile size.
myListView.TileSize = new Size(400, 45);
// Initialize the item icons.
myImageList = new ImageList();
using (Icon myIcon = new Icon("book.ico"))
{
myImageList.Images.Add(myIcon);
}
myImageList.ImageSize = new Size(32, 32);
myListView.LargeImageList = myImageList;
// Add column headers so the subitems will appear.
myListView.Columns.AddRange(new ColumnHeader[]
{new ColumnHeader(), new ColumnHeader(), new ColumnHeader()});
// Create items and add them to myListView.
ListViewItem item0 = new ListViewItem( new string[]
{"Programming Windows",
"Petzold, Charles",
"1998"}, 0 );
ListViewItem item1 = new ListViewItem( new string[]
{"Code: The Hidden Language of Computer Hardware and Software",
"Petzold, Charles",
"2000"}, 0 );
ListViewItem item2 = new ListViewItem( new string[]
{"Programming Windows with C#",
"Petzold, Charles",
"2001"}, 0 );
ListViewItem item3 = new ListViewItem( new string[]
{"Coding Techniques for Microsoft Visual Basic .NET",
"Connell, John",
"2001"}, 0 );
ListViewItem item4 = new ListViewItem( new string[]
{"C# for Java Developers",
"Jones, Allen & Freeman, Adam",
"2002"}, 0 );
ListViewItem item5 = new ListViewItem( new string[]
{"Microsoft .NET XML Web Services Step by Step",
"Jones, Allen & Freeman, Adam",
"2002"}, 0 );
myListView.Items.AddRange(
new ListViewItem[] {item0, item1, item2, item3, item4, item5});
// Initialize the form.
this.Controls.Add(myListView);
this.Size = new System.Drawing.Size(430, 330);
this.Text = "ListView Tiling Example";
}
// Clean up any resources being used.
protected override void Dispose(bool disposing)
{
if (disposing)
{
myImageList.Dispose();
}
base.Dispose(disposing);
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.Run(new ListViewTilingExample());
}
}
Imports System.Drawing
Imports System.Windows.Forms
Public Class ListViewTilingExample
Inherits Form
Private myImageList As ImageList
Public Sub New()
' Initialize myListView.
Dim myListView As New ListView()
myListView.Dock = DockStyle.Fill
myListView.View = View.Tile
' Initialize the tile size.
myListView.TileSize = new Size(400, 45)
' Initialize the item icons.
myImageList = New ImageList()
Dim myIcon as Icon = new Icon("book.ico")
Try
myImageList.Images.Add(myIcon)
Finally
myIcon.Dispose()
End Try
myIcon.Dispose()
myImageList.ImageSize = New Size(32, 32)
myListView.LargeImageList = myImageList
' Add column headers so the subitems will appear.
myListView.Columns.AddRange(New ColumnHeader() _
{New ColumnHeader(), New ColumnHeader(), New ColumnHeader()})
' Create items and add them to myListView.
Dim item0 As New ListViewItem( New String() _
{"Programming Windows", _
"Petzold, Charles", _
"1998"}, 0 )
Dim item1 As New ListViewItem( New String() _
{"Code: The Hidden Language of Computer Hardware and Software", _
"Petzold, Charles", _
"2000"}, 0 )
Dim item2 As New ListViewItem( New String() _
{"Programming Windows with C#", _
"Petzold, Charles", _
"2001"}, 0 )
Dim item3 As New ListViewItem( New String() _
{"Coding Techniques for Microsoft Visual Basic .NET", _
"Connell, John", _
"2001"}, 0 )
Dim item4 As New ListViewItem( New String() _
{"C# for Java Developers", _
"Jones, Allen / Freeman, Adam", _
"2002"}, 0 )
Dim item5 As New ListViewItem( New String() _
{"Microsoft .NET XML Web Services Step by Step", _
"Jones, Allen / Freeman, Adam", _
"2002"}, 0 )
myListView.Items.AddRange( _
New ListViewItem() {item0, item1, item2, item3, item4, item5})
' Initialize the form.
Me.Controls.Add(myListView)
Me.Size = new System.Drawing.Size(430, 330)
Me.Text = "ListView Tiling Example"
End Sub
' Clean up any resources being used.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If (disposing) Then
myImageList.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
<STAThread()> _
Shared Sub Main()
Application.EnableVisualStyles()
Application.Run(New ListViewTilingExample())
End Sub
End Class
Compilar el código
Para este ejemplo se necesita:
Referencias a los ensamblados System y System.Windows.Forms.
Un archivo de icono llamado book.ico en el mismo directorio que el archivo ejecutable.
Consulte también
.NET Desktop feedback