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?

Foi útil?

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.

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