1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

ListView

Discussão em 'Programação' iniciada por Just a Begginer, 23 de Março de 2009. (Respostas: 4; Visualizações: 2677)

  1. Bom dia antes de mais

    Sou um iniciante nestas coisas da programação, estou a usar o visual basic express 2008.
    Estou com um problema que passo a explicar:
    1º Criei um form com abas em que cada uma delas tem produtos para vender.
    2º Queria ter tipo um cesto de compras, ou seja, cada produto tem um botão comprar e a ideia era ao carregar no botão adicionar esse produto no cesto. Para isso lembrei-me de usar o ListView mas o colocar os produtos no ListView está complicado.
    Sei criar a listview com os vários itens lá, mas nos procedimentos dos botões fazer com que sejam adicionados itens não consigo.

    Alguém sabe outra forma de o fazer, ou como fazer desta forma?
     
  2. ribeiro55

    ribeiro55 Power Member

    A ListView suporta vários tipos de visualização.
    Para esse tipo de uso, sugiro a "Details"
    Aqui vai um pequeno exemplo de adição de items, com uma ListView chamada "LV" (e em VB.NET)
    Código:
            LV.Clear()
            LV.View = View.Details
            LV.Columns.Add("Produto")
            LV.Columns.Add("Qtd")
            LV.Columns.Add("P. Unit.")
            LV.Columns.Add("Total")
    
            Dim LVI As New ListViewItem
    
            LVI.Text = "Barrote oxidado"
            LVI.SubItems.Add("3")
            LVI.SubItems.Add("10")
            Dim Total As String = CStr(CInt(LVI.SubItems(1).Text) * CInt(LVI.SubItems(2).Text))
            LVI.SubItems.Add(Total)
    
            LV.Items.Add(LVI)
    Isto vai limpar tudo o que existe na ListView, refazer as colunas e inserir um item, sempre que é executado. Ou seja, só serve para teres um exemplo.
    Claro que normalmente vamos querer que as colunas não sejam limpas (e aí limpamos apenas os items LV.Items.Clear), e vamos querer poder adicionar mais items, mas é como se diz:
    "Não te dou o peixe. Ensino-te a pescar"

    EDIT: Fiz o Total daquela forma para entenderes também como se vão buscar valores, antecipando uma próxima dúvida ;)
     
    Última edição: 23 de Março de 2009
  3. Obrigado desde já pela resposta. Já consegui colocar os procedimentos para os botões, apesar de estar a fazê-lo individualmente para cada botão.

    Por acaso não há nenhuma forma de definir um mesmo procedimento para vários botões ao mesmo tempo?


    Agradeço a atenção relativamente há forma de fazer a soma, mas isso é para cada item e como fazer a soma para uma coluna?


    Terei de usar um for para ir desde a 1ª linha até à última, e a última como posso saber qual é?
    E será qualquer coisa do género:

    Dim Total As String = CStr(CInt(item1.SubItems(1).Text) + CInt(items2.SubItems(1).Text))
     
  4. ribeiro55

    ribeiro55 Power Member

    Claro que sim. A Framework é bela.
    Se não precisares de "parâmetros de entrada", podes simplesmente acrescentar "handles" ao método. No final da linha de definição do método tens, por exemplo, Handles Button1.Click.
    Acrescentas aí os handles que te apetecer. Ou seja, os eventos que quando disparados são "endereçados" a este método.
    Se precisares de parâmetros, que é a forma mais fácil de fazeres isso, basta criares um método privado (ou não) para aceitar os parâmetros necessários e proceder à adição.
    Por exemplo:
    Código:
        Private Sub AdicionarProduto(ByVal Produto As String, ByVal Qtd As Integer, ByVal Preco As Double)
    
            Dim LVI As New ListViewItem
            LVI.Text = Produto
            LVI.SubItems.Add(Qtd.ToString)
            LVI.SubItems.Add(Preco.ToString)
            Dim Total As String = CStr(CInt(LVI.SubItems(1).Text) * CInt(LVI.SubItems(2).Text))
            LVI.SubItems.Add(Total)
    
            ListViewParaAdicionar.items.add(LVI)
    
        End Sub
    E para utilizares basta meteres nos tais botões, por exemplo isto:
    Código:
    AdicionarProduto("Barrote oxidado",3,10)
    Onde os argumentos são referências ao que tens, óbvio.
    Acabei quase por te fazer o método... :p

    Sim, um ciclo FOR é uma forma.
    Algo como isto:
    Código:
            Dim TempSoma As Double = 0
            For Each LVI As ListViewItem In ListViewParaAdicionar.items
                TempSoma += CDbl(LVI.SubItems(3).Text)
            Next
     
  5. Ajuda

    Olá eu ainda sou muito novo na programação e estava a desenvolver um projecto que consistia em fazer um gestor de um café. A minha ideia era ter as imagens dos produtos e quando se clica-se no produtos iriam aparacer ao lado no cesto de compras as suas escolhas com a quantidade e preço, e no final do cesto um total das compras. Estava também a pensar por um botão que apaga-se os produtos do cesto de compras, e outro a apagar apenas o poduto seleccionado.
    Gostaria que me ajudassem a resolver este problema
    Era mesmo muito importante
    Sem mais de momento
    ps: Não percebi quase nada do que está aí em cima

    Obrigado
     

Partilhar esta Página