Como é que as formas ninho framework .NET no classes. (Vb.net)
-
05-07-2019 - |
Pergunta
Se eu olhar para algumas classes no quadro, usando reflector, eu posso ver que as formas e controles de usuário são feitas privado e aninhada em uma classe pai.
Por exemplo, eu tenho um controle que faz uso de formulário de pop-up que é específico para esse controle. No momento, eu faço a forma amigo pop-up acessível. Se eu quisesse fazer isso da maneira quadro, eu torná-lo privado e ninho-lo na classe de controle. Se eu fizer isso, no entanto, eu não posso mais usar o IDE para criar o formulário e eu recebo erros quando tento compilar. Então, eu tenho 2 perguntas:
(1) Do Microsoft fazer algo no último minuto para aninhar todas as coisas privado?
(2) é o caminho a forma preferida ou deveria me ater ao meu amigo acessores?
Solução
A forma aninhada é melhor, porque ele impõe encapsulamento correta e significa que o controle final vai acabar em um bom pacote puro para distribuição. Se nenhum desses são uma preocupação para você continuar fazendo o seu caminho. Mas se você quiser, pelo menos, tentativa de nidificação da classe, você pode fazer algo como isto:
- Use o designer para construir o seu formulário aninhada fora da classe como o faria normalmente.
- Adicione uma segunda esvaziar forma como uma forma aninhada privado como eles fazem nos exemplos CLR com o mesmo nome que o formulário que você criou na etapa 1.
- Migrar o código da
*.designer.vb
ou*.designer.cs
para sua primeira forma para o construtor para o seu segundo formulário. Na maior parte vai ser apenas um grande copiar / colar. - Remova o formulário a partir do passo 1. Você pode querer preservar movendo-a para um projeto de biblioteca de classe separada de modo que você pode usar quando você precisar fazer alterações.