MANIPULANDO TREEVIEW
Ola Pessoal Pessoa criar um tree nestas condicoes
Menu
---Cadastro
---Usuario
--- acesso
-Parametros
tem algum exemplo para que eu possa me basear
Menu
---Cadastro
---Usuario
--- acesso
-Parametros
tem algum exemplo para que eu possa me basear
Da uma olhada nesse exemplo que eu fiz: >>Link<<
Este é o tÃpico caso onde simplesmente entender OOP resolve o problema. OOP não é somente criar classes, é também saber utilizar a estrutura de classes e objetos já disponibilizados no .NET Framework, incluindo os componentes windows form.
Um controle TreeView é simplesmente uma lista de nós. Cada nó pode conter N filhos. Basta criar uma classe que contenha, o texto à ser exibido, qual Ãtem é o pai e qual o código do Ãtem, assim:
Então, basta criar uma lista deles:
Então, um simples for...each para adicionar os Ãtens, procurando seu respectivo nó pai:
Os Ãtens, podem conter inclusive imagens, se quiser.
Mas novamente, isso tudo não seria problema algum se entender o que é OOP. Estude isso e NUNCA MAIS terá problemas para entender absolutamente nada da plataforma .NET
Um controle TreeView é simplesmente uma lista de nós. Cada nó pode conter N filhos. Basta criar uma classe que contenha, o texto à ser exibido, qual Ãtem é o pai e qual o código do Ãtem, assim:
public class Nos
{
public string Codigo { get; set; }
public string Pai { get; set; }
public string Texto { get; set; }
}
Então, basta criar uma lista deles:
List<Nos> nos = new List<Nos>();
nos.Add(new Nos() { Codigo = [Ô]1[Ô], Pai = [Ô]0[Ô], Texto = [Ô]Pai 1[Ô] });
nos.Add(new Nos() { Codigo = [Ô]2[Ô], Pai = [Ô]0[Ô], Texto = [Ô]Pai 2[Ô] });
nos.Add(new Nos() { Codigo = [Ô]3[Ô], Pai = [Ô]0[Ô], Texto = [Ô]Pai 3[Ô] });
nos.Add(new Nos() { Codigo = [Ô]4[Ô], Pai = [Ô]1[Ô], Texto = [Ô]Filho 1[Ô] });
nos.Add(new Nos() { Codigo = [Ô]5[Ô], Pai = [Ô]1[Ô], Texto = [Ô]Filho 2[Ô] });
nos.Add(new Nos() { Codigo = [Ô]6[Ô], Pai = [Ô]4[Ô], Texto = [Ô]Filho 3[Ô] });
nos.Add(new Nos() { Codigo = [Ô]7[Ô], Pai = [Ô]2[Ô], Texto = [Ô]Filho 4[Ô] });
nos.Add(new Nos() { Codigo = [Ô]8[Ô], Pai = [Ô]7[Ô], Texto = [Ô]Filho 5[Ô] });
nos.Add(new Nos() { Codigo = [Ô]9[Ô], Pai = [Ô]7[Ô], Texto = [Ô]Filho 6[Ô] });
nos.Add(new Nos() { Codigo = [Ô]10[Ô], Pai = [Ô]2[Ô], Texto = [Ô]Filho 8[Ô] });
Então, um simples for...each para adicionar os Ãtens, procurando seu respectivo nó pai:
foreach (Nos item in nos)
{
if (treeView1.Nodes.Find(item.Pai, true).Count() == 0)
treeView1.Nodes.Add(item.Codigo, item.Texto);
else
treeView1.Nodes.Find(item.Pai,true).First().Nodes.Add(item.Codigo, item.Texto);
}
Os Ãtens, podem conter inclusive imagens, se quiser.
Mas novamente, isso tudo não seria problema algum se entender o que é OOP. Estude isso e NUNCA MAIS terá problemas para entender absolutamente nada da plataforma .NET
KERPLUNK, tenho os menus numa tabela onde sei o que usuario pode acessar ou nao, como faco para correr estes itens e colocar um Check dizendo que ele tem permisao para isto , nao sei se me entende
Desculpe, sei que não foi isso que vc pediu, mas só um comentário, esse controle eu risquei ele do mapa, muito bonitinho e tudo mais, mas a manutenção é sofrÃvel.
Pense bem.
Pense bem.
voce usa o que nilsontres
Citação::
KERPLUNK, tenho os menus numa tabela onde sei o que usuario pode acessar ou nao, como faco para correr estes itens e colocar um Check dizendo que ele tem permisao para isto , nao sei se me entende
Sim, entendo o que você quer. E você entendeu o que expliquei de como funciona o componente?
é assim ate entindi os modulos , mais como correr os nos atraves de OOP , este 'minha questao pegar os dados gravado na tabela e jogar neste dar um true no checkbox que esta no treeView1
Bom, primeira coisa é que um treeview nao é o melhor componente para se fazer um menu. Eu sugiro o MenuStrip, nativo do Visual Studio, ou algum outro customizado.
Em segundo lugar, para verificar as permissões do usuário, tu pode adicionar uma outra propriedade a classe:
E ai, por último, na hora de adicionar ao treeview (lembrando que Menu é melhor):
Em segundo lugar, para verificar as permissões do usuário, tu pode adicionar uma outra propriedade a classe:
public class Nos
{
public string Codigo { get; set; }
public string Pai { get; set; }
public string Texto { get; set; }
public bool Acesso {get; set;}
}
E ai, por último, na hora de adicionar ao treeview (lembrando que Menu é melhor):
foreach (Nos item in nos)
{
if (item.Acesso)
{
if (treeView1.Nodes.Find(item.Pai, true).Count() == 0)
treeView1.Nodes.Add(item.Codigo, item.Texto);
else
treeView1.Nodes.Find(item.Pai,true).First().Nodes.Add(item.Codigo, item.Texto);
}
}
ASHKATCHUP, o Menu eu ja fiz estou usando o treeview para mostrar para quem tiver cadastrando quaiz acesso a pessoa tera, qual ideia ele ira clicar no treeview quais acesso ele tem e ira gravar num banco de dados os acessos dele , é isto que preciso
Então você quer poder marcar checkboxes no treeview, isso? Você habilita ou não o usuário ao menu, se é que entendi direito.
Tópico encerrado , respostas não são mais permitidas