Você está na página 1de 11

Introduo

Com o seguinte trabalho fiz pequenas aplicaes onde explico o bsico de 5 controlos de listagem existentes no C# - ListBox, ComboBox, ListView, TreeView e DataGrid - as aplicaes esto ao nvel de compreenso de qualquer utilizador normal, para terem uma pequena noo das capacidades destas ferramentas, faltam alguns comandos de controlo e/ou interaco com as mesmas, mas o essencial esta aqui todo. Todo o cdigo que usei, esta aqui no documento, tal como onde o inserir, o porqu do cdigo, e a sua funo para a finalidade da aplicao.

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 cdigo 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 aplicao, vou mostrar como se adicionam, modificam, e se apaga os dados todos inseridos, ou, apagar o ultimo campo na ListBox,

Necessrio: 1 ListBox, 2 TextBox, 5 Buttons 1 fazer o design pretendido, dar nomes a tudo o que se introduzir para uma maior compreenso quando se for introduzir o cdigo;

2 Boto Inserir Duplo Click no boto na form e escrever o seguinte cdigo:


lbexemplo.Items.Add(txttexto.Text);

isto bai fazer com que o que estiver escrito na txttexto seja passado para a ListBox. 3 Boto Modificar Duplo Click no boto na form e escrever o seguinte cdigo:
int a; a=lbexemplo.SelectedIndex; lbexemplo.Items.RemoveAt(a); lbexemplo.Items.Insert(a,txtmodificar.Text);

o cdigo detecta o ndex do que se quer mudar, apagar, e introduzir um novo nessa posio (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 boto modificar ele fazer a troca. 4 Boto Apagar 1 a 1 Duplo Click no boto na form e escrever o seguinte cdigo:
int a; a=lbexemplo.SelectedIndex; lbexemplo.Items.RemoveAt(a);

Este cdigo 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 Boto Apagar tudo Duplo Click no boto na form e escrever o seguinte cdigo:
lbexemplo.Items.Clear();

Este cdigo apaga tudo que na ListBox tenha sido introduzido.

ComboBox: quase como uma ListBox mas em questo de se fazer uma seleco melhor, pois mais directo, ficando apenas a vista do utilizador o campo escolhido, pode ser usado em varias aplicaes e com funcionalidades diferentes por exemplo num formulrio onde se selecciona a Nacionalidade da pessoa que esta a responder, ou em ligao a uma GroupBox ao seleccionar Nokia por exemplo numa ComboBox apareceria uma GroupBox com os diversos modelos de telemveis da Nokia, e caso de se escolher Siemens apareceria uma GroupBox com os modelos de telemveis da Siemens Fiz uma aplicao simples apenas para mostrar algumas coisas que a ComboBox pode fazer,

Necessrio: 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 insero do cdigo a compreenso ser melhor;

2 ComboBox Duplo click na ComboBox e inserir o seguinte cdigo:


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 cdigo vai fazer com que ao seleccionar Nokia aparea a groupBox correspondente a Nokia, ou a Siemens ou Motorola, quando um esta visvel __.visible=true os outros esto __.visible=false 3 Adicionar Cdigo:
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 vrias opes grande, pequeno, por detalhes ou por lista, caso se insira uma ImageList na form, pode-se associar imagens aos cones, pode ter scroll bar includa, ou ento ligar uma VScrollBar (scroll bar Vertical) ou uma HScrollBar (scroll bar Horizontal) a ListView, entre outras opes. 1 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, 2 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.

3 Tambm 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 situaes em que se quer ver pastas e os seus contedos, por exemplo fazer uma ligao da TreeView ao disco rgido, e a partir da podemos ver todo o seu contedo de pasta a pasta, podemos configurar a aplicao para que se adapte a bastantes funes, 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 ento temos a opo de adicionar por cdigo (Cdigo escrito no boto 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 cdigo faz com que aparea Geral como root e teste como seu filho

Boto Adicionar Tem o seguinte cdigo:


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 ligao a base de dados podendo ver todos os campos de uma base de dados, ou ver simplesmente os que se pretender, fazendo uma seleco 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, necessrio fazermos uma class (dei lhe o nome de teste), para assim ficar o programa com alguma ordem na sua estrotura, e sempre que seja necessrio aceder a qualquer comando na Base de Dados/aceder aos dados, no seja preciso repetir cdigo, 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 informao 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 no seria possvel 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 ligaao a BD, selecionando todas os campos ( com o * ) //da tabela empregados e de seguida, faz a ligaao 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 ligaao a BD, pois os dados ja estao em memoria oLig.Close(); //retorna os dados em memoria das colunas return ds.Tables["Empregados"]; } } }

2 Insero de dados no DataGrid Cria-se um boto inserir e introduz-se o seguinte cdigo:


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

O cdigo 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 ligao a BD, abrir a BD e seleccionar a tabela de destino, preencher o DataSet, fechar a ligao com a BD e finalmente retornar os dados em memria.