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

Ricardo RMX

[Resolvido] Herança de formulários

4 mensagens neste tópico

Tenho tido problemas com a herança de formulários.

Criei um form para servir de modelo a todos os meus forms de cadastro. Ele possui menus, dois GroupBox que centralizam as informações principais e comuns a todos os cadastros. Possui também cinco botões para Novo/Gravar, Alterar, Excluir, Pesquisar e Fechar/Cancelar.

Ao carregar (Load) o formulário, é apresentado um DataGridView mostrando todo o conteúdo do cadastro em uso (por ex.: Cidades).

A partir daí, o usuário poderá navegar pelo Grid podendo escolher algum registro a ser alterado ou excluído. Poderá também acionar a pesquisa e será remetido a outro form específico para este fim. Poderá também clicar em Novo e criar um novo registro.

Caso opte por Novo ou Alterar, o DataGridView se torna invisível e surge um TabControl com diversos controles e guias, conforme os campos do cadastro em tela.

Como modelo tudo funciona muito bem.

Quando tento herdá-lo porém, as coisas mudam.

O DataGridView some, o DataControl que deveria estar invisível se torna visível, não consigo modificar/excluir/crescentar os controles no TabControl e os menus deixam de ser editáveis.

Não entendo porquê!

Todas as variáveis, Subs e Functions estão declaradas como Friend ou Public;

Todos os controles sujeitos a edição, especialmente o TabControl e inclusive menus, têm sua propriedade Modifiers = Public.

Não sabendo o que fazer, estou criando cada Form de Cadastro com o mesmo layout sem herança, mas não tem graça e dá muito trabalho.

Alguém pode ajudar com alguma dica ou pode indicar algum tutorial?

Desde já agradeço.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá Ricardo,

A explicação é longa mas eu não entendi qual é o problema. :)

Podes explicar melhor e mostrar algum código ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Poderia, mas o Form é relativamente complexo e o código muito longo para colocar aqui, acredito (mais de 1000 linhas).

O meu problema, tentando simplificar, é que ao herdar um Form ocorrem erros. O principal deles é que não consigo editar o controle TabControl.

Mas de tanto insistir, encontrei a solução:

A propriedade 'Modifiers' dos controles editáveis deve conter o valor 'Protected' e não 'Public' como eu estava usando. Agora o TabControl se tornou editável.

Outra coisa que estava errada e eu não sabia: o código que estiver em Form_Load do modelo é executado na fase de herança, sem que o programa esteja rodando. Era este o motivo dos erros.

Um bom exemplo de herança pode ser encontrado em http://www.macoratti.net/vbn5_fbf.htm.

Obrigado pelo interesse, JPaulino. O assunto, para mim, está resolvido.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora