Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

ferreira12

[Resolvido] ListView passar campos para texbox entre ";"

Recommended Posts

ferreira12

Boas,

Estou a carregar dados para uma listview. Carregada a listview conforme vou clicando queria que a o campo selecionado passe para a textbox, aparecendo no formato ;

ana; manuel; joao;

TextBox2.Text = Me.lstEstadoCivilSexo.SelectedItems(0).SubItems(4).Text

estou a usar algo como isto, mas não me chega.

Share this post


Link to post
Share on other sites
NunoDinis

TextBox2.Text = Me.lstEstadoCivilSexo.SelectedItems(0).SubItems(4).Text & ";"

É isto que queres ?

Edited by NunoDinis

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites
ferreira12

Sim é isso... Mas quando clico noutro item apaga o anterior. e a ideia ir permanecendo

Share this post


Link to post
Share on other sites
Tiago Salgado

Nesse caso tens que fazer append ao que já tens.

TextBox2.Text &= Me.lstEstadoCivilSexo.SelectedItems(0).SubItems(4).Text & ";"

Share this post


Link to post
Share on other sites
NunoDinis
TextBox2.Text &=  Me.lstEstadoCivilSexo.SelectedItems(0).SubItems(4).Text & ";"


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites
ferreira12

Aproveitando ainda a vossa ajuda sobre este assunto, e para colocar automaticamente logo toda a informação existente na listview.

Estou neste momento a usar doubleClick. Qual é o método que tenho de chamar, mal carrega a listview, passe para o textbox por ";"

Share this post


Link to post
Share on other sites
NunoDinis

Se queres carregar para a listview todos os dados quando o formulário abre, utilizas o evento form_load.


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites
ferreira12

Pois, isso foi o que pensei/experimentei, mas como deu o seguinte erro

InvalidArgument=Valor de '0' inválido para 'index'.

Share this post


Link to post
Share on other sites
NunoDinis

Não te devo estar a entender.

Queres carregar a listview automaticamente aquando a abertura do formulário. Só isso, certo ?


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites
ferreira12

sim é isso, mas queria que depois da listview carregada me fosse buscar o subitem(4), para me colocar no textbox, ou seja,

Eu anteriormente carregava a listview, e depois com duplo clique (usava o método doubleClick da listview), para preencher o textbox(o código que me ajudaram a produzir).

Agora pretendia era que o textbox fosse preenchido directamente sem ter que recorrer ao doubleclick, mal seja carregada a listview carregue também o textbox

Share this post


Link to post
Share on other sites
NunoDinis

É no evento form_load, como disse. Mas antes tens que pôr o código para carregar a listview, e depois o código em que te auxiliamos.

Caso volte a dar erro, põe o código aqui.


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites
ferreira12

Coloquei dentro de um button, que vai dar a mesma como se tivesse no formload.

O código é o seguinte:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
 lstEstado.Items.Clear()
 LerListViewEstado(lstEstado, "SELECT * from Teste")

 TextBox2.Text &= lstEstado.SelectedItems(0).SubItems(4).Text & "; "

End Sub

Queres ver também o LerListViewEstado()?

ah, o erro é o mesmo que o anterior

InvalidArgument=Valor de '0' inválido para 'index'.

Share this post


Link to post
Share on other sites
ferreira12

Acrescentei o seguinte codigo:

lstEstado.Items(2).Selected = True

Aqui ele já vai me buscar a linha 2 do subitem 4.

Como faço para seleccionar as linhas todas?

Edited by ferreira12

Share this post


Link to post
Share on other sites
NunoDinis

Pelo que me parece, ele não está a assumir que tem valores...

Deves percorrer a listview:

For i = 1 To listview.ListItems.Count
  listview.lstnome.ListItems(i).Checked //verifica, fiz aqui e não tenho a certeza
Next


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites
ferreira12

Coloquei da seguinte forma o código:

For i = 1 To lstEstado.Items.Count
	 lstEstado.Items(i).Selected = True
	 TextBox2.Text &= lstEstado.SelectedItems(0).SubItems(3).Text & "; "
	 'ListView.lstnome.ListItems(i).Checked() 'verifica, fiz aqui e não tenho a certeza
 Next

mas deu o seguinte erro:

InvalidArgument=Valor de '5' inválido para 'index'.

Share this post


Link to post
Share on other sites
ferreira12

Experimentei agora da seguinte forma, mas está a dar um sim outro nao, ou seja

ex: Ana | Maria | Manuela | Carla | Pedro | aparece no textbox Ana | Manuela | Pedro

Dim i As Integer
 For i = 0 To lstEstado.Items.Count.ToString
	 i = i + 1
	 'lstEstado.Items(i).Selected = True
	 'MsgBox(lstEstado.Items(i - 1).SubItems(3).Text)
	 TextBox2.Text &= lstEstado.Items(i - 1).SubItems(3).Text & "; "
	 'ListView.lstnome.ListItems(i).Checked() 'verifica, fiz aqui e não tenho a certeza
 Next

Edited by Caça
GeSHi

Share this post


Link to post
Share on other sites
NunoDinis

Põe o incremento no fim de passares os valores para a caixa de texto.


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites
acao

boas

talvez assim:

Dim i As Integer
 For i = 0 To lstEstado.Items.Count.ToString

	 'lstEstado.Items(i).Selected = True
	 'MsgBox(lstEstado.Items(i - 1).SubItems(3).Text)
	 TextBox2.Text &= lstEstado.Items(i ).SubItems(3).Text & "; "
	 'ListView.lstnome.ListItems(i).Checked() 'verifica, fiz aqui e não tenho a certeza
 Next

cumps

acao

Share this post


Link to post
Share on other sites
ferreira12

Boas...

dessa maneira pára no ultima linha e dá o seguinte erro:

InvalidArgument=Valor de '6' inválido para 'index'.

Share this post


Link to post
Share on other sites
acao

boas

talvez assim:

Dim i As Integer
 For i = 0 To lstEstado.Items.Count.ToString -1


cumps

acao

Share this post


Link to post
Share on other sites

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

×

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.