C#
- Usando ListView para exibição de dados
![]() |
Neste artigo vou mostrar algumas propriedades e recursos do controle ListView para exibição e organização de dados. |
Eu estou usando o SharpDevelop 2.2 mas podemos usar o Visual C# Express Edition.
Veja na figura abaixo o leiaute do formulário da nossa primeira aplicação usando ListView com C#. Ela tem o objetivo de mostrar como exibir dados no ListView. No exemplo eu estou usando o banco de dados Northwind.mdb e a aplicação tem o objetivo de executar consultas SQL que o usuário digita na caixa de texto e exibir o resultado no controle ListView.
Inicie o SharpDevelop e no menu Arquivo selecione Novo -> Solução;
A seguir na janela Novo Projeto selecione C# -> Aplicações Windows e informe o nome executaSQL e clique em Criar;
![]() |
No formulário MainForm.cs inclua os componentes conforme o leiaute abaixo;
![]() |
Os controles usados no
formulário são: 1- TextBox - txtSql ; Multiline = True 2- Button - cmdExecuta 3- TextBox - txtBD 4- Listview - lvwResultado ; View = Details |
No evento Click do botão de comando Executar temos o código que acessa o banco de dados Northwind.mdb informado, executa um comando com a instrução SQL informada e gera um datareader exibido o resultado no ListView; (Veja o comentário no código para detalhes)
private void cmdExecuta_Click(object sender, System.EventArgs e)
{
//verifica se foi informada uma consulta
if (txtSql.Text.Equals(""))
{
MessageBox.Show("Digite uma instrução válida.");
return;
}
//define a string de conexão
string sDBstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + txtBD.Text;
//criar o objeto connection
OleDbConnection conn = new OleDbConnection(sDBstr);
try
{
//limpa o listview
lvwResultado.Columns.Clear() ;
lvwResultado.Items.Clear();
//abre a conexao
conn.Open();
//cria um comando oledb
OleDbCommand cmd = conn.CreateCommand();
//define o tipo do comando como texto
cmd.CommandText = txtSql.Text;
//executa o comando e gera um datareader
OleDbDataReader dr = cmd.ExecuteReader();
//preenche o cabeçalho do listview com os nomes dos campos
for (int i = 0; i< dr.FieldCount; i++)
{
ColumnHeader ch = new ColumnHeader();
ch.Text=dr.GetName(i);
lvwResultado.Columns.Add(ch);
}
//define um item listview
ListViewItem item;
//inicia leitura do datareader
while (dr.Read())
{
item=new ListViewItem();
item.Text= dr.GetValue(0).ToString();
//preenche o listview com itens
for (int i=1 ; i< dr.FieldCount; i++) {
item.SubItems.Add(dr.GetValue(i).ToString());
}
lvwResultado.Items.Add(item);
}
//fecha o datareader
dr.Close();
}
catch ( System.Data.OleDb.OleDbException ex)
{
MessageBox.Show("Ocorreu um erro durante a execução da instrução SQL." +
"Erro : " + ex.Message, "SQL");
}
finally
{
//fecha a conexao
conn.Close();
}
}
|
Executando o projeto para a instrução SQL : Select * from Products; temos o seguinte resultado:

Como podemos ver o controle ListView é muito versátil e fácil de usar. Vejamos alguns recursos deste controle:
A Hierarquia de classe do componente pode ser visto a seguir:
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.Control
System.Windows.Forms.ListView
O ListView possui um menu de tarefas (ListView Tasks) onde podemos editar itens, colunas e grupos além de definir o modo de visão como: Tile, Small Icons, Large Icons, List e Details.

Quando você seleciona o primeiro item no menu de tarefa do ListView o editor de coleção de itens é exibido e ListViewItems pode ser incluídos ou removidos e suas propriedades podem ser definidas. Um objeto ListViewItem pode exibir uma imagem com um texto, neste caso um ImageList deve ser usado para associar a imagem com o objeto ListViewObject.
A classe ListViewItem representa itens em um controle ListView e a classe ListViwSubItem representa um sub-item relacionado ao ListViewItem. A classe ListViewItem expõe a propriedade coleção de SubItems que representa uma lisa de sub-itens relacionas a um item.
![]() |
Além disso podemos incluir itens manualmente no controle incluindo ListViewItems na propriedade Items da coleção de itens do ListView. Veja um exemplo abaixo:
ListViewItem listViewItem1 =
new ListViewItem();
ListViewSubItem listViewSubItem1 = new ListViewSubItem();
listViewItem1.Text = "Macoratti";
listViewSubItem1.Text = "www.macoratti.net";
listViewItem1.SubItems.Add(listViewSubItem1);
listView1.Items.Add(listViewItem1);
Da mesma forma para incluir colunas manualmente basta inserir objetos ColumnHeader a coleção Columns do ListView. Neste caso as colunas serão exibidas somente se o modo de exibição do ListView estiver definido para Details. Exemplo:
ColumnHeader columnHeader1 =
new ColumnHeader();
ColumnHeader columnHeader2 = new ColumnHeader();
columnHeader1.Text = "Nome";
columnHeader2.Text = "E-mail";
listView1.Columns.Add(columnHeader1);
listView1.Columns.Add(columnHeader2);
Para incluir um grupo via
código inserimos objetos ListViewGroup a
coleção Groups do ListView. Exemplo:
listView1.Groups.Add(new ListViewGroup("Friends", HorizontalAlignment.Left));
Para definir o modo de visão via código fazemos:
listView1.View = View.Details;
Em um próximo artigo vou mostrar como podemos exibir, incluir, e ler dados em um ListView sem usar um banco de dados.
Aguarde...
![]()
|
Veja os
Destaques e novidades do
SUPER DVD Visual Basic (sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a
Objetos com VB .NET
![]()