Pergunta

Este é o meu cenário ... Eu tenho um Winform TabControl que possui uma variedade de campos em cada guia (cada guia possui campos diferentes). Quando o usuário clica no botão 'Gereate', ele deve passar os controles da guia TabControl para que a função chamada possa criar um e-mail com base nas informações do controle aprovado. Cada guia é um modelo de e-mail diferente. O método pode ser chamado de 4 botões diferentes, cada botão estando em uma página de tabcontrol diferente e cada tabcontrol com campos diferentes.

O problema que estou tendo é que não consigo descobrir uma maneira decente de chamar/passar esses controles. Como não se sabe qual botão TabControl está sendo pressionado até depois do tempo de execução, estou tentando criar um método abstrato para aceitar esses controles, porque cada guia possui um conjunto diferente de controles.

Alguma ideia?

Foi útil?

Solução

Como alguém mencionou, você pode trapacear e tentar usar

tabControl.Controls

Para uma correção rápida e suja.

Se você quiser algo que seja viável daqui para frente, além de expor -o a algumas melhores práticas de design, eu sugeriria uma alternativa. Criar um EmailUserControl UserControl Isso contém todos esses campos de formulário para o email. Coloque esse controle do usuário na guia em vez de todos os campos individuais. Em seguida, forneça um método sobre o controle do usuário que gera o email desejado com todos os campos levados em consideração e, em seguida, você pode passar seu email real, em vez de todas as peças e peças individuais que você pode usar para criá -lo.

Existem melhorias adicionais disponíveis nesse design, é claro, mas esta é uma ótima oportunidade para você molhar os pés e tentar algo um pouco melhor. À medida que você se sente mais confortável com a ideia de UserControlS, você reconhecerá oportunidades adicionais para melhorar o design de seus controles. :)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top