TREEVIEW CHECKED BOX AJUDA
Como pegar os itens selecionados, e jogar em uma textbox multiline?
Alguem tem alguma ideia?
Veja se é isso:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
PercorrerNos(TreeView1.Nodes)
End Sub
Private Sub PercorrerNos(ByVal Nos As TreeNodeCollection)
For Each no As TreeNode In Nos
if no.Checked then
MessageBox.Show(no.Text)
PercorrerNos(no.Nodes) [ô]percorre os subnós, retire se não for o seu caso.
end if
Next
End Sub
Boa noite Jaba tentei ver este seu codigo mais nada acontece to tentando quando o usuario for marcando a caixa ele vai adicionando ao textbox multiline se ele desmarcar apagar
Eu testei aqui e está funcionando perfeitamente. Selecione os Checkboxes e depois chame aquela função, pelo click do botão por exemplo.
Pra testar aqui eu fiz assim:
Depois no click do botão, eu fiz assim:
Pra testar aqui eu fiz assim:
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
TreeView1.CheckBoxes = True
For i As Integer = 0 To 5
TreeView1.Nodes.Add([Ô]A[Ô] & i)
Next
End Sub
Depois no click do botão, eu fiz assim:
Private Sub btnOk_Click(sender As System.Object, e As System.EventArgs) Handles btnOk.Click
PercorrerNos(TreeView1.Nodes)
End Sub
Você poderia jogar tudo dentro de uma lista, aà depois percorre a lista e manda salvar. Por exemplo:
Depois é só percorrer a lista, assim:
Public function PercorrerNos(ByVal Nos As TreeNodeCollection) as List(of String)
dim lista as new list(of string)
For Each no As TreeNode In Nos
if no.Checked then
lista.Add(no.Text)
PercorrerNos(no.Nodes) [ô]percorre os subnós, retire se não for o seu caso.
end if
Next
return lista
End Sub
Depois é só percorrer a lista, assim:
For each valor as string in PercorrerNos(TreeView1.Nodes)
[ô]salvaOValorNoBD(valor)
Next
Outra coisa que percebi tambem Jaba e que ele nao pega os subnos tipo dentro de Consultas tem varios subnos ele nao pega este valores...
Citação:textbox1.text = valor
essa variavel [Ô]valor[Ô] dentro da funcao vai mudando o seu conteudo a cada iteração, se você fizer com um textbox.text, ele vai sempre pegar o ultimo valor e não vai mostrar o restante.
Tente assim:
TextBox1.Text = TextBox1.Text & Newline & valor
OBS: Ele só vai pegar os nodes que estão com check verdadeiro, tanto para os nós quanto para os subnós.
Estou saindo aqui. Boa noite.
Sim entendi, vlw vou tentar resolver para pegar o subno...
Ele nao esta a pegar o subno
Fiz algumas modificações aqui, confira aà como ficou:
Public Function PercorrerNos(ByVal Nos As TreeNodeCollection, lista As List(Of String)) As List(Of String)
For Each no As TreeNode In Nos
If no.Checked Then
lista.Add(no.Text)
PercorrerNos(no.Nodes, lista) [ô]percorre os subnós, retire se não for o seu caso.
End If
Next
Return lista
End Function
Private Sub btnOk_Click(sender As System.Object, e As System.EventArgs) Handles btnOk.Click
Dim lista As New List(Of String)
For Each valor As String In PercorrerNos(TreeView1.Nodes, lista)
MsgBox(valor)
Next
End Sub
Tópico encerrado , respostas não são mais permitidas