示例#1
0
        public void CarregaMenu()
        {
            //Obtém as opções do banco de dados
            MenuPrincipal menu = new MenuPrincipal();

            opcoes = menu.GetOpcoes();

            //Tamanho da tela
            int yOpc = pMenu.Size.Height;

            //Quantidade de itens no menu
            int qtd = opcoes.Count;

            //Calculo para centralizar os botões verticalmente
            int pos1 = ((yOpc - qtd * hBtn) / 2) - (hBtn / 2);

            for (int i = 0; i < qtd; i++)
            {
                int pos = pos1 + (i * hBtn);

                MenuPrincipalDTO dto  = (MenuPrincipalDTO)opcoes[i];
                string           nome = dto.Opcao;

                string icnNome = $"icn{nome}";
                string btnNome = $"{nome}";

                AddIcn(pos, icnNome);
                AddButton(pos, btnNome, dto.Descricao);
            }
        }
示例#2
0
        /// <summary>
        /// Click de alguma opção do menu
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void MenuClick(object sender, EventArgs e)
        {
            //Deixa todos com a cor padrão
            foreach (Control c in pMenu.Controls)
            {
                if (c is Panel)
                {
                    c.Visible = false;
                }

                if (c is Button)
                {
                    c.BackColor = pMenu.BackColor;
                }
            }

            Button b     = (Button)sender;
            string pName = "icn" + b.Name;

            //Muda para as novas cores
            b.BackColor = crBtnSl;

            Panel icn = pMenu.Controls.Find(pName, false).FirstOrDefault() as Panel;

            icn.Visible = true;

            //Busca qual a opção selecionada para então buscar subOpções
            int menuSelecionado = -1;

            for (int i = 0; i < opcoes.Count; i++)
            {
                MenuPrincipalDTO dto = (MenuPrincipalDTO)opcoes[i];
                if (dto.Opcao == b.Name)
                {
                    menuSelecionado = i;
                }
            }

            MontaSubMenu subMenu = new MontaSubMenu(pSubMenu);

            subMenu.CarregaMenu((MenuPrincipalDTO)opcoes[menuSelecionado]);
        }
示例#3
0
        public void CarregaMenu(MenuPrincipalDTO pai)
        {
            //Obtém as opções do banco de dados
            SubMenu   menu   = new SubMenu();
            ArrayList opcoes = menu.GetOpcoes(pai);

            if (opcoes.Count < 1)
            {
                AddBackGroudImage();
                return;
            }

            //Tamanho da tela
            int hTela = pSubMenu.Size.Height;
            int wTela = pSubMenu.Size.Width;

            //Quantidade de itens no menu
            int qtd            = opcoes.Count;
            int qtdOpcoesLinha = (wTela / wBtn) - 1;
            int qtdLinhas      = qtd / qtdOpcoesLinha;

            if (qtd % qtdOpcoesLinha != 0)
            {
                qtdLinhas++;
            }

            //Calculo para centralizar os botões
            int iniPosY;
            int iniPosX;

            //Verifica se precisa mais de uma linha
            if (qtd > qtdOpcoesLinha)
            {
                iniPosY = (hTela / 2) - (qtdLinhas * hBtn / 2);
                iniPosX = (wTela / 2) - (qtdOpcoesLinha * wBtn / 2);
            }
            else
            {
                iniPosY = (hTela / 2) - (hBtn / 2);
                iniPosX = (wTela / 2) - (qtd * wBtn / 2);
            }

            //for para as linhas
            for (int i = 0; i < qtdLinhas; i++)
            {
                int posY = iniPosY + (i * hBtn);

                //Calculas quantos item terão nessa linha
                int restantes = qtd - (qtdOpcoesLinha * i);
                if (restantes > qtdOpcoesLinha)
                {
                    restantes = qtdOpcoesLinha;
                }

                //for para as colunas
                for (int j = 0; j < restantes; j++)
                {
                    int opc = j + i * qtdOpcoesLinha;

                    /* Verifica se precisa recalcular as posições
                     * Necessário para quando tiver poucas opções na linha
                     */
                    int posX;
                    if (restantes < qtdOpcoesLinha)
                    {
                        posX  = (wTela / 2) - (restantes * wBtn / 2);
                        posX += j * wBtn;
                    }
                    else
                    {
                        posX = iniPosX + (j * wBtn);
                    }

                    //Pega as informações provinda do banco de dados para mostrar o botão para o usuário
                    SubMenuDTO dto  = (SubMenuDTO)opcoes[opc];
                    string     nome = dto.Opcao;

                    string btnNome = $"{nome}";

                    AddButton(posY, posX, btnNome, dto.Descricao);
                }
            }
        }