a dll trabalha sim... descobri isso dando uma fuçada um tempo atrás, nem imaginava q fosse possível...mas afinal, um form é uma classe :)
vc não vai criar um form no seu projeto. Ele já vai estar criado na sua DLL com todos os objetos necessários. Suponhamos q vc tenha um form de cadastro de clientes padrão. Vc chamaria um método da sua classe para mostrar o form... exemplo
MinhaClasse.MostrarFormCliente(parâmetros).
Dentro da Procedure da classe estaria: Form1.Show
Se tiver a necessidade de acrescentar ou excluir algum objeto pode fazer isso usando a coleção "controls" do seu form. Se não me engano os objetos q podem ser excluídos são aqueles criados em tempo de execução.
Mas isso já é na parte prática. Legal é definir o escopo e se atender o cliente ótimo, se precisar acrescentar outra coisa vc apenas muda a sua DLL sem ter refazer o formulário tanto na interface qto na codificação.
Óbvio q falando é fácil, eu creio q vai dar muita mão-de-obra mas é aquela história: "depois de feito fica mais fácil..." hehehe. E é uma coisa q vc vai reaproveitar em outros projetos.
at+