Você está na página 1de 11

Introdução

Com o seguinte trabalho fiz pequenas aplicações onde explico o básico de 5


controlos de listagem existentes no C# - ListBox, ComboBox, ListView,
TreeView e DataGrid - as aplicações estão ao nível de compreensão de
qualquer utilizador normal, para terem uma pequena noção das capacidades
destas ferramentas, faltam alguns comandos de controlo e/ou interacção com
as mesmas, mas o essencial esta aqui todo.
Todo o código que usei, esta aqui no documento, tal como onde o inserir, o
porquê do código, e a sua função para a finalidade da aplicação.
ListBox:

É usada para quando se que obter uma listagem de dados mas em forma de
lista, por exemplo num supermercado, ao passar os produtos no leitor de
código de barras é acrescentado à lista todos os produtos, podendo depois
organiza-los alfabeticamente ou por exemplo pelo produto mais caro, para o
produto mais barato.

Na seguinte aplicação, vou mostrar como se adicionam, modificam, e se


apaga os dados todos inseridos, ou, apagar o ultimo campo na ListBox,

Necessário:
1 ListBox, 2 TextBox, 5 Buttons

1º fazer o design pretendido, dar nomes a tudo o que se introduzir para uma
maior compreensão quando se for introduzir o código;
2º Botão Inserir
Duplo Click no botão na form e escrever o seguinte código:
lbexemplo.Items.Add(txttexto.Text);

isto bai fazer com que o que estiver escrito na txttexto seja passado para a
ListBox.

3º Botão Modificar
Duplo Click no botão na form e escrever o seguinte código:

int a;
a=lbexemplo.SelectedIndex;
lbexemplo.Items.RemoveAt(a);
lbexemplo.Items.Insert(a,txtmodificar.Text);

o código detecta o índex do que se quer mudar, apagar, e introduzir um


novo nessa posição (Índex);

- Isto só funciona seleccionando 1º o que se quer modificar, depois tem de


se escrever o novo texto a introduzir na txtmodificar para kuando de
seguida se click no botão modificar ele fazer a troca.

4º Botão Apagar 1 a 1
Duplo Click no botão na form e escrever o seguinte código:
int a;
a=lbexemplo.SelectedIndex;
lbexemplo.Items.RemoveAt(a);

Este código serve para apagar um campo a escolha, basta seleccionar o


cmapo que se quer apagar. O que se faz é detectar o Índex do campo a
apagar e depois apaga-lo.

5º Botão Apagar tudo


Duplo Click no botão na form e escrever o seguinte código:

lbexemplo.Items.Clear();

Este código apaga tudo que na ListBox tenha sido introduzido.


ComboBox:

É quase como uma ListBox mas em questão de se fazer uma selecção é


melhor, pois é mais directo, ficando apenas a vista do utilizador o campo
escolhido, pode ser usado em varias aplicações e com funcionalidades
diferentes por exemplo num formulário onde se selecciona a Nacionalidade da
pessoa que esta a responder, ou em ligação a uma GroupBox ao seleccionar
Nokia por exemplo numa ComboBox apareceria uma GroupBox com os
diversos modelos de telemóveis da Nokia, e caso de se escolher Siemens
apareceria uma GroupBox com os modelos de telemóveis da Siemens

Fiz uma aplicação simples apenas para mostrar algumas coisas que a
ComboBox pode fazer,

Necessário:
1 ComboBox, 2 Buttons, 1 TextBox, 1 Label

1º fazer o design pretendido, dar nomes a tudo o que se introduzir para mais
tarde na inserção do código a compreensão ser melhor;
2º ComboBox
Duplo click na ComboBox e inserir o seguinte código:

if (cbteste.Text=="Nokia")
{
gbnokia.Visible=true;
gbmotorola.Visible=false;
gbsiemens.Visible=false;
gbteste.Visible=false;
}
else if (cbteste.Text=="Siemens")
{
gbsiemens.Visible=true;
gbmotorola.Visible=false;
gbnokia.Visible=false;
gbteste.Visible=false;
}
else if (cbteste.Text=="Motorola")
{
gbmotorola.Visible=true;
gbnokia.Visible=false;
gbsiemens.Visible=false;
gbteste.Visible=false;
}
else
{
gbteste.Visible=true;
gbmotorola.Visible=false;
gbnokia.Visible=false;
gbsiemens.Visible=false;
}

Este código vai fazer com que ao seleccionar Nokia apareça a groupBox
correspondente a Nokia, ou a Siemens ou Motorola, quando um esta visível
__.visible=true os outros estão __.visible=false

3º Adicionar
Código:
string a;
a= txtteste.Text;
cbteste.Items.Add(a);

Adiciona um novo item a ComboBox

4º Por fim ao se escolher Nokia Siemens ou Motorola aparece uma


groupbox respectiva a cada um, mas caso se introduza um item na ComboBox
aparece a GroupBox teste
ListView:

Serve para se ver ícones como numa lista, podendo ter a vista dos ícones em
várias opções grande, pequeno, por detalhes ou por lista, caso se insira uma
ImageList na form, pode-se associar imagens aos ícones, pode ter scroll bar
incluída, ou então ligar uma VScrollBar (scroll bar Vertical) ou uma HScrollBar
(scroll bar Horizontal) a ListView, entre outras opções.


Para se poder adicionar imagens a ícones, 1º tem de se adicionar uma
imageList, onde na propriedade Images tem de adicionar as imagens que se vai
usar,


Adicionar os ícones pretendidos, selecciona-se a ListView e depois na
propriedade Items adiciona-se os items que se pretende e as imagens,
acertando as imagens aos items pelo seu índex das mesmas.


Também à a possibilidade de se mudar as vistas ícones grandes ou
pequenos.
Basta ir a propriedade Small Image List ou a Large Image List e
seleccionar a ImageList feita previamente.
TreeView

É o mais aplicado a situações em que se quer ver pastas e os seus conteúdos,


por exemplo fazer uma ligação da TreeView ao disco rígido, e a partir daí
podemos ver todo o seu conteúdo de pasta a pasta, podemos configurar a
aplicação para que se adapte a bastantes funções, inserir pastas em pastas,
copiar files, imprimir files, etc.

Podemos inserir manualmente os Nodes que se quer, seleccionando a


TreeView e depois na propriedade Nodes insere-se o pai (Add Root) caso se
queira os filhos (Add Child)

Ou então temos a opção de adicionar por código (Código escrito no botão


Add Geral/Teste ):

TreeNode geral=new TreeNode();


geral.Text="Geral";
TreeNode teste=new TreeNode();
teste.Text="teste";
geral.Nodes.Add(teste);
this.tvteste.Nodes.Add(geral);
Este código faz com que apareça Geral como root e teste como seu filho

Botão Adicionar

Tem o seguinte código:

tvteste.Nodes.Add(txtadicionar.Text);

Que faz com que se crie um novo node (nó) na TreeView, basta introduzir um
nome na txtbox e ao clickar ele adicionar o node.
DataGrid

Bastante útil para ter uma ligação a base de dados podendo ver todos os
campos de uma base de dados, ou ver simplesmente os que se pretender,
fazendo uma selecção dos campos, pode-se interligar 2 DataGrid para por
exemplo ao clicar em Fornecedor se poder ver todos os produtos associados a
esse fornecedor (isto no segundo DataGrid), pode-se inserir campos, modificar
e apagar directamente na BD.

Para se usar o DataGrid no exemplo que eu fiz, é necessário fazermos uma


class (dei lhe o nome de teste), para assim ficar o programa com alguma
ordem na sua estrotura, e sempre que seja necessário aceder a qualquer
comando na Base de Dados/aceder aos dados, não seja preciso repetir código,
assim basta instanciar a classe feita e podemos usa-la de livre vontade.
O programa apenas acede a base de dados e preenche o DataGrid com a
informação da mesma.

1º Fazer a Classe teste

Project > Add Class > Nome: teste

using System;
//para se usar as propriedades de acesso as bases de dados
//temos de importar esses comandos que sao o System.Data e
System.Data.OleDB
//sem estes o acesso a BD não seria possível
using System.Data;
using System.Data.OleDb;

namespace WindowsApplication1
{
/// <summary>
/// Summary description for teste.
/// </summary>
public class teste
{

//de seguida cria-se um DataSet pois é o que se associa a


um
//controlo a fonte de dados
private DataSet ds;

public teste()
{
//sempre que a classe for instanciada tem de se criar
um novo dataset
//vazio, pois assim fica pronto e disponivel para ser
preenchido.
ds = new DataSet();
}

public DataTable gettodos()


{
//mostra o path para a BD
OleDbConnection oLig=new
OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=c:\\temp\\wind.mdb;User Id=admin;Password=");
//efectuar a ligaçao a BD, selecionando todas os
campos ( com o * )
//da tabela empregados e de seguida, faz a ligaçao
OleDbDataAdapter da=new OleDbDataAdapter("SELECT *
FROM Empregados",oLig);
//cria-se um dataset vazio, que de seguida vai ficar
preenchido
DataSet ds=new DataSet();
//enche-se o dataset (ds) com os campos da tabela
empregados
da.Fill(ds,"Empregados");
//fecha-se a ligaçao a BD, pois os dados ja estao em
memoria
oLig.Close();
//retorna os dados em memoria das colunas
return ds.Tables["Empregados"];
}

}
}

2º Inserção de dados no DataGrid

Cria-se um botão inserir e introduz-se o seguinte código:

teste x=new teste();


this.dgteste.DataSource=x.gettodos();

O código esta a instanciar um novo DataSet para o poder encher, ou seja


estamos a instanciar o DataSet que se encontra na classe feita anteriormente,
que já contem os dados para estabelecer ligação a BD, abrir a BD e seleccionar
a tabela de destino, preencher o DataSet, fechar a ligação com a BD e
finalmente retornar os dados em memória.