Não estou sabendo a melhor forma de criar as telas de um sistema qualquer e chamá-las através de botões.
Por exemplo:

using System; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace Teste { public partial class Foo : Form { public Foo() { InitializeComponent(); msgInicial(); } private void msgInicial() { Label lblMsg = new Label(); lblMsg.Text = "Início!"; panel.Controls.Add(lblMsg); } private void tsbFoo_Click(object sender, EventArgs e) { Label lblFoo = new Label(); lblFoo.Text = "Foo!"; panel.Controls.Add(lblFoo); } private void tsbBar_Click(object sender, EventArgs e) { Label lblBar = new Label(); lblBar.Text = "Bar!"; panel.Controls.Add(lblBar); } private void toolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { panel.Controls.Clear(); } } }
Funciona, exemplo simples... Mas no caso cada tela teria vários controls, então colocaria todo o conteúdo de cada tela dentro de um Panel, e adicionaria esse Panel correspondente a tela no Panel principal da aplicação. Está correto isso?
Como eu faria para criar essas várias telas?
Teria que adicionar ao projeto vários Windows Form (um para cada tela)? Como iria adicionar no Panel neste caso?
Eu crio os controles diretamente pelo Visual Studio, apenas neste exemplo eu criei manualmente o Label para uma demonstração. E então tenho que pegar o código fonte do Design e colocar dentro de um método que fará com que esse conteúdo apareça, assim não ficando tudo amontoado na tela. (Que modo horrível)
Grato.