C# - Criando um ListView com ícones - I
Hoje veremos como criar um ListView com ícones em uma aplicação Windows Forms. |
Hoje vamos explorar a verstailidade do ListView para criar e exibir ícones pequenos e grandes.
Basicamente oque vamos fazer é colocar imagens em dois controles ImageList e a seguir definidir as propriedades LargeImageList e SmallImageList do controle ListView. Depois amos definir as propriedades ImageIndex dos itens com os índices pertinentes para os ícones corretos a exibir no ListView.
Vamos ao que interessa...
Criando o projeto Windows Forms
Vamos então criar um projeto do tipo Windows Forms App(.NET Framework) no VS 2019 Community no menu File -> New Project, com o nome WF_ListViewIcons;
No formulário Form1.cs inclua os seguintes controles:
Defina o leiaute do formulário conforme a imagem a seguir:
Os namespaces usados no projeto são:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
A seguir inclua o código abaixo no evento Load do formulário onde vamos criar as imagens e preencher o ListView - lvDados - com dados :
private void Form1_Load(object sender, EventArgs e) { // Inicializa o ListView. lvDados.SmallImageList = imageList1; lvDados.LargeImageList = imageList2;
// Defina o cabeçalho das colunas
// Cria
as imagens
imageList1.Images.Clear();
using (Pen pen_pequena = new Pen(Color.Blue, 2))
Bitmap bm64x64 = new Bitmap(64, 64); |
Crie o método AdicionaLinha() onde vamos incluir os dados que vamos exibir no ListView:
// Adiciona uma nova linha ao ListView.
public void AdicionaLinha(ListView lvw, string key,
string titulo_item, params string[] titulo_subitem)
{
// Cria o item
ListViewItem novo_item = lvw.Items.Add(titulo_item, key);
// Cria os sub-items.
for (int i = titulo_subitem.GetLowerBound(0);
i <= titulo_subitem.GetUpperBound(0);
i++)
{
novo_item.SubItems.Add(titulo_subitem[i]);
}
}
|
A seguir crie o método que vai criar o cabeçalho do ListView recebendo os itens e sub-itens a exibir:
public void CriaCabecalhoColuna(ListView lvw, params object[] cabecalho_info)
{
// Remove cabeçalhos existentes
lvw.Columns.Clear();
// Cria o cabeçalho das colunas
for (int i = cabecalho_info.GetLowerBound(0);
i <= cabecalho_info.GetUpperBound(0);
i += 3)
{
lvw.Columns.Add(
(string)cabecalho_info[i],
(int)cabecalho_info[i + 1],
(HorizontalAlignment)cabecalho_info[i + 2]);
}
}
|
Crie o método DesenhaEstrela que vai criar uma imagem de uma estrela com número x de pontas:
// Desenha uma estrela que indica o numero
de pontas da estrela private void DesenhaEstrela(Graphics gr, RectangleF rect, int numero_pontos, Pen pen, Brush brush) { // Calcula float cx = (rect.Left + rect.Right) / 2f; float cy = (rect.Top + rect.Bottom) / 2f; float rx1 = rect.Width / 2f - 1; float ry1 = rect.Height / 2f - 1; float rx2 = rx1 / 3f; float ry2 = ry1 / 3f;
// Gera os
pontos das estrelas
// Desenha a figura |
No evento SelectedIndexChanged do cboEstilo defina o código abaixo para alterar o modo de exibição do ListView:
private void CboEstilo_SelectedIndexChanged(object sender, EventArgs e)
{
switch (cboEstilo.Text)
{
case "Ícones Grandes":
lvDados.View = View.LargeIcon;
break;
case "Ícones Pequenos":
lvDados.View = View.SmallIcon;
break;
case "Lista":
lvDados.View = View.List;
break;
case "Lado a Lado":
lvDados.View = View.Tile;
break;
case "Detalhes":
lvDados.View = View.Details;
break;
}
}
|
Executando projeto teremos o resultado abaixo:
Em outro artigo veremos como usar o ListView para exibir imagens e também a imagem selecionada.
Pegue o projeto completo aqui : WF_ListViewIcons.zip
"E (Jesus) disse-lhes: Acautelai-vos e guardai-vos da
avareza; porque a vida de qualquer não consiste na abundância do que possui.""
Lucas 12:15
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
C# - StreamReader, StringReader e TextReader . Qual a ... - Macoratti
C# - Imprimindo um arquivo texto - Macoratti
C# - Usando OpenFileDialog - Macoratti
C# - Formatando arquivos textos - Macoratti
C# - Convertendo valores para o formato monetário
C# - ListView Manutenção de dados - Macoratti
C# - Lendo e escrevendo em arquivos textos e binários - Macoratti
C# - ListView - Preenchendo com dados e ... - Macoratti
VB.NET - Conversão entre tipos de variáveis - Macoratti
C# - ListView - Macoratti
C# - Localizando Arquivos - Macoratti