winforms painéis vs painéis java swing
Pergunta
Em java swing posso inserir painéis em painéis e assim por diante, e não tem que construir uma nova janela marca para cada vista da minha applicaiton, ou mexer remover e adicionar controles.
Há uma clas painel pecado C # no entanto eu não consigo ver nenhuma maneira de criar uma 'forma de painel' ou, basicamente, apenas um formulário no designer de formulário isso é um painel e seu conteúdo.
Como posso fazer isso, então e trabalhar da maneira que fiz com java swing?
Solução
Normalmente eu só encaixar diferentes formas dentro eachother definindo a propriedade IsMdiContainer a verdade sobre a janela pai. Então eu criar subformulários que eu Dock utilizando a seguinte função:
static class FormUtil
{
static public void showForm(Form sender, Control reciever)
{
sender.ControlBox = false;
sender.FormBorderStyle = FormBorderStyle.None;
sender.ShowInTaskbar = false;
sender.TopLevel = false;
sender.Visible = true;
sender.Dock = DockStyle.Fill;
reciever.Controls.Clear(); //clear panel first
reciever.Controls.Add(sender);
}
}
então sempre que eu preciso para ancorar um formulário dentro de um painel sobre os pais formulário I apenas fazer:
FormUtil.showForm(new SomeForm(), this.splitContainer1.Panel1);
Isso me permite delegar algumas da criação formulário para diferentes designers. Funciona como um encanto para mim, o amor para ouvir se há uma maneira melhor de fazê-lo.
Outras dicas
Na verdade, você pode usar o painel de controle e configure-Dock propriedade para Fill. Dessa forma, o painel será a tela inteira do formulário. Depois, você pode adicionar painéis criança, se necessário através de código por trás ou por meio de formulários designer.
Há o conceito de controles de usuário que basicamente fornece-lhe com um painel como superfície de designer, para não mencionar que você pode criar formas atômicas (que podem ser reutilizados) e registrá-los como hereditária, de que maneira você pode fornecer herança também.