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?

Foi útil?

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:

  1. Use o designer para construir o seu formulário aninhada fora da classe como o faria normalmente.
  2. 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.
  3. 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.
  4. 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.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top