MENUSTRIP PARTE DINÂMICA PARTE NORMAL
Boa tarde!
Surgiu uma necessidade de em uma das ramificações do menu strip, os itens serem dinâmicos em função do cadastro de uma tabela do banco.
O que já fiz:
- Essa tabela está limitada a 10 registros (itens do menu)
- Na ramificação do menu que vou usar esses itens, já criei 10 itens com nomes Grupo1, Grupo2, Grupo3....Grupo10 e coloquei todos com Visible = false (ocultos)
A ramificação do menu é mais ou menos assim:
Menu Principal
Segundo nÃvel
Terceiro nÃvel
Quarto nÃvel (menu que conterá os itens da tabela)
Grupo1
Grupo2
Grupo3
.....
Dúvida:
1) Como devo fazer para que a cada acesso nesse menu (apenas o Quarto NÃvel - momento que os itens desse menu são exibidos), os itens sejam atualizados com os valores atuais da tabela (texto do item) ? Isso porque sendo multiusuário, essa tabela pode ser editada e novos itens incluÃdos ou editados e assim qualquer usuário com permissão teria os dados atualizados ao abrir esse submenu.
- essa atualização seria incluir no item o texto correspondente do registro da tabela ex: De: Grupo1 para texto do primeiro registro, etc.....
- tendo o item alterado, também torá-lo Visible = true
- o registro sendo inativado na tabela, também seria oculto no menu
Nota: Já deixei tudo codificado em cada item com formulários de mesmo nome frmGrupo1.cs frmGrupo2.cs etc.. e assim a codificação funcionará corretamente o mesmo com a tabela correspondente.
Surgiu uma necessidade de em uma das ramificações do menu strip, os itens serem dinâmicos em função do cadastro de uma tabela do banco.
O que já fiz:
- Essa tabela está limitada a 10 registros (itens do menu)
- Na ramificação do menu que vou usar esses itens, já criei 10 itens com nomes Grupo1, Grupo2, Grupo3....Grupo10 e coloquei todos com Visible = false (ocultos)
A ramificação do menu é mais ou menos assim:
Menu Principal
Segundo nÃvel
Terceiro nÃvel
Quarto nÃvel (menu que conterá os itens da tabela)
Grupo1
Grupo2
Grupo3
.....
Dúvida:
1) Como devo fazer para que a cada acesso nesse menu (apenas o Quarto NÃvel - momento que os itens desse menu são exibidos), os itens sejam atualizados com os valores atuais da tabela (texto do item) ? Isso porque sendo multiusuário, essa tabela pode ser editada e novos itens incluÃdos ou editados e assim qualquer usuário com permissão teria os dados atualizados ao abrir esse submenu.
- essa atualização seria incluir no item o texto correspondente do registro da tabela ex: De: Grupo1 para texto do primeiro registro, etc.....
- tendo o item alterado, também torá-lo Visible = true
- o registro sendo inativado na tabela, também seria oculto no menu
Nota: Já deixei tudo codificado em cada item com formulários de mesmo nome frmGrupo1.cs frmGrupo2.cs etc.. e assim a codificação funcionará corretamente o mesmo com a tabela correspondente.
LUIS,
Na minha opinião a melhor forma seria você usar a propriedade DropDownItems. Ela é uma collection que, obviamente, contém os sub-menus.
De forma simples você daria um Clear() e depois uma carga apenas com os dados da tabela que são válidos.
onde:
imagem = qualquer imagem que será usada como Ãcone do menu ou null para nenhuma.
OnItemMenuQuartoNivelClick = rotina usada para tratar o evento click, onde será chamado seus WinForms.
Qualque dúvida poste.
Na minha opinião a melhor forma seria você usar a propriedade DropDownItems. Ela é uma collection que, obviamente, contém os sub-menus.
De forma simples você daria um Clear() e depois uma carga apenas com os dados da tabela que são válidos.
menuQuartoNivel.DropDownItems.Clear();
DataReader dr = command.ExecuteReader([Ô]SELECT texto FROM sua_tabela WHERE (ativo = 1);[Ô]);
while (dr.Read())
{
menuQuartoNivel.DropDownItems.Add(new ToolStripMenuItem(dr[[Ô]texto[Ô]], imagem, OnItemMenuQuartoNivelClick));
}
onde:
imagem = qualquer imagem que será usada como Ãcone do menu ou null para nenhuma.
OnItemMenuQuartoNivelClick = rotina usada para tratar o evento click, onde será chamado seus WinForms.
Qualque dúvida poste.
Tópico encerrado , respostas não são mais permitidas