Jump to content

Recommended Posts

Posted

Olá,

Tenho uma listview com duas colunas. Posso ter, ou não, dados para introduzir na lista. No caso de ter, quero adicionar duas palavras, uma na coluna 1 e outra na coluna 2. Como é que faço isto?

Neste momento o meu código está assim mas isto adiciona um item apenas à primeira coluna e eu queria adicionar a parte "Label" à primeira e a parte "Part" à segunda coluna.

While reader.Read()
listView1.Items.Add(reader.Item("Label") & " - " & reader.Item("PartNumber"))
Posted

Existe uma coisa que é o ListViewItem (para a primeira coluna) e o ListViewSubItem (para as restantes colunas). O que tens de fazer é como o exemplo mostra 😉

Mas isto não está a aceitar nenhum listviewsubitem... Sinceramente não percebo onde estou a errar.

Posted

No #5 do artigo, explica como te podes referenciar a um valor.

Onde lês:

LV.SelectedItems(0).SubItems("Idade").Text

Com referência, tens acesso à colecção que contém os subitems. Por exemplo assim:

LV.SelectedItems(0).SubItems.Add("A tal palavra")
LV.SelectedItems(0).SubItems.Add("A tal segunda palavra")

Se quiseres afectar uma coluna de uma forma não sequencial, terás de aldrabar pois não me recordo se a coleção subitems tem algum display index ou coisa parecida (por acaso tenho de ir coscuvilhar isso):

LV.SelectedItems(0).SubItems.Add("")
LV.SelectedItems(0).SubItems.Add("A tal segunda palavra")

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Posted

Mostra lá o código!

Estou a usar o teu código para fazer a selecção de dados de uma base de dados:

http://vbtuga.blogspot.com/2008/04/vbnet-gesto-de-dados-em-sql-server_16.html

As únicas diferenças é que estou a ir buscar dois items a uma tabela e não um. Depois cá para o fim tenho isto:

If reader.HasRows Then

    ' Executa um ciclo nas linhas existentes mostrando o campo “username”
While reader.Read()
	listView1.Items.Add(reader.Item("Label") & " - " & reader.Item("PartNumber"))
End While

A minha listview já tem duas colunas. Esse código acima era só para testar porque o que eu queria era o Label na primeira coluna e o PartNumber na 2ª

Posted

Vê o exemplo que o ribeiro55 te mostrou 😉

No meu blog também tens alguns exemplos com listviews, mas este exemplo está simples!

Epá, agradeço a vossa paciência mas eu também já estou todo trocado. É que a minha listview está vazia e um número indeterminado de items vão ser adicionados. Nesse exemplo é usado o index 0 para o item mas eu no meu caso não o posso usar. Estou mesmo a dar em maluco com isto e se calhar até é fácil.

Posted

Podes usar o artigo #5 em pleno se quando adicionares os items, os já adiciones com os dois subitems vazios extra.

Assim eles já existem e não precisas de recorrer a maroscas.

Estuda o #4 para saberes como adicionar os itens correctamente para que os seus elementos fiquem facilmente acessíveis.

Quanto a teres de tirar duas palavras de uma frase, aproveita o facto de usares o "-" para concatenares a string.

Exemplo:

            Dim Frase As String = "Falar é fácil - Copiar código é ainda mais"
            Dim P() As String = Split(Frase, " - ")
            MsgBox(P(0))
            MsgBox(P(1))

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Posted

Ok, fiz assim e já deu:

		Dim LVI As New ListViewItem

	Dim SLVI1 As New ListViewItem.ListViewSubItem
        LVI.Name = "Label"
        LVI.Text = reader.Item("Label")

        SLVI1.Name = "Part Number"
        SLVI1.Text = reader.Item("PartNumber")

        LVI.SubItems.Add(SLVI1)

        listView1.Items.Add(LVI)

O que eu não percebo e pensei que desse era para definir o subitem com algo do género:

listView1.Items.Item(index).Subitems(0).Text = ....

Aparentemente não dá.

Muito obrigado aos dois pela ajuda.

Posted

Dá, se já existir.

Se não existir, não dá.

E o índice 0 dos subitems é o próprio item. O que é engraçado. 😁

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Posted

Infelizmente tive de voltar a abrir este tópico. Estou a implementar parte deste código mas em compact framework para por no pda e estou a tentar usar uma listview. Infelizmente na parte do código de adicionar items à listview, obtenho os seguinte erros:

'Name' não é um membro de 'System.Windows.Forms.ListViewItem'. (BC30456) - D:\PT104246\My Documents\SharpDevelop Projects\pda\pda\MainForm.vb:40

'Name' não é um membro de 'System.Windows.Forms.ListViewItem.ListViewSubItem'. (BC30456) - D:\PT104246\My Documents\SharpDevelop Projects\pda\pda\MainForm.vb:42

respectivamente nas linhas de código:

lvi.Name = "Id"

slvi1.Name = "Label"

O código todo é o seguinte:

Dim lvi As New ListViewItem
Dim slvi1 As New ListViewItem.ListViewSubItem
lvi.Name = "Id"
lvi.Text = SQLreader("id")		 
slvi1.Name = "Label"
slvi1.Text = SQLreader("label")
lvi.SubItems.Add(slvi1)
listView1.Items.Add(lvi)

isto é muito estranho pois o item da listview tem de ter uma propriedade 'name'. O que é que está aqui a falhar?

Posted

Não tenho experiência com a compact framework, mas de facto esses objectos não precisam necessáriamente de nome.

Repara que no exemplo do jpaulino o nome não é usado.

De facto, se voltares ao #4 do artigo has-de reparar na nota amarela que lá está 😁

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Posted

Não tenho experiência com a compact framework, mas de facto esses objectos não precisam necessáriamente de nome.

Repara que no exemplo do jpaulino o nome não é usado.

De facto, se voltares ao #4 do artigo has-de reparar na nota amarela que lá está 😁

Penso que já sei qual é o problema. É que eu tenho a minha listview em modo "details" (o único que me permite ter colunas) mas pelos visto isso não é compatível para o pda.

O erro é este:

'PerformLayout' não é um membro de 'pda.MainForm'. (BC30456)

Se de facto isto é verdade, que alternativas poderei usar para ter o mesmo tipo de control? Ou seja, uma lista com várias colunas.

Posted

Estou a usar o sharpdevelop para fazer o meu programa e verifiquei que no visualstudio já dá para adicionar os items às colunas. Se calhar vou optar por fazer isto no visualstudio mas mantenho a minha questão. Além da listview há outra maneira para fazer o que pretendo?

Posted

Se os SmartPhones não papam ListViews em modo details, a Microsoft não deixava isso pendurado e deve existir outro controlo do género para isso.

Sim, usa VS. Com as SDK instaladinhas tens logo simulações e tudo certinho direitinho em relação ao que funciona ou não.

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Posted

Se os SmartPhones não papam ListViews em modo details, a Microsoft não deixava isso pendurado e deve existir outro controlo do género para isso.

Sim, usa VS. Com as SDK instaladinhas tens logo simulações e tudo certinho direitinho em relação ao que funciona ou não.

Pois. No VS dá. Deve ser algum problema com o sharpdevelop que aproveito para dizer que sendo free é uma excelente ferramenta.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.