Cauby, tranquilo, perguntando e testando que se aprende. Vamos por partes…
Quanto ao Container Control, se voc tratar ele como se fosse um formulrio, colocando listbox, campos e botes, a idia usar a sua segunda opo, estanciando e usando EmbedWithin. Para dar uma idia, na figura que postei mais acima, todo o lado direito, que no o Menu Lateral, um controle Canvas, onde eu adiciono e removo Containers, como no exemplo que voc citou. Assim, no abro janelas.
Quanto a acessar um TextField de um Container, funciona, e fcil. Desde que voc use o acesso totalmente qualificado do componente. Ou seja, se o Container estiver dentro de uma Window ou de um Canvas, voc precisa usar Canvas.Container.textField.text, ou Window.Container.TextField.text.
De resto, no tem segredo. como voc postou. Tem alguns pequenos detalhes para levar em conta. Por exemplo, voc precisa ter na sua janela principal, um mtodo que seja chamado antes de instanciar qualquer Container Control, para verificar se j no existe um outro Container Control no Canvas, e se existir, remover. Neste caso, voc precisa saber antecipadamente, qual o Container que est instanciado l… Como fazer isso ? Este um timo exemplo do que citei anteriormente. Voc mantm uma propriedade pblica, do tipo Container Control, na janela principal, e assim que for instanciar um Container, guarda o nome dele nesta propriedade. Assim, no momento da remoo, voc sabe onde buscar a informao.
Estou com o tempo muito curto nestas ltimas semanas, mas a partir do meio da semana que vem, minha agenda volta ao normal, e vou tratar de todos estes detalhes no blog tambm. Mas no se preocupe, pergunte a vontade. Enquanto eu puder ajudar, estou a disposio. Mas pelo jeito, seu ritmo de aprendizado est muito bom…