Pergunta

Uma etiqueta dimensionada como um retângulo com nenhum texto, mas tem uma borda e é invisível (para um retângulo visual sobre a forma em torno de controles, mas não para conter os controles) ou um painel?

Foi útil?

Solução

O que você quer de uso é um GroupBox. Não que isso realmente importa, o mais provável, mas um rótulo deve ser mais barato do que um painel.

Outras dicas

A resposta é; não importa que tem o espaço menor, e se isso acontecer você tem um problema de projeto (ou seja, você tem maneira muitos controles no formulário). De qualquer forma, você deve apenas usar o controle que se encaixa o trabalho, neste caso, um painel ou um GroupBox.

Se este é realmente um problema, então a melhor maneira de fornecer uma separação visual entre os controles é lidar com evento Paint de cada página da guia, e usar e.Graphics.FillRectangle (...) para desenhar o separador. Você iria se livrar de um número muito grande de controles dessa forma.

Se você não pode fazer algo tão simples como desenhar um retângulo debaixo de cada controle em cada página guia, você pode escrever uma rotina de geração de código que você execute uma vez no formulário, e para cada página da guia você gera algo como este (por iteração por todos os controles de separação na página):

List<Rectangle> rects = new List<Rectangle>();
rects.Add(new Rectangle(10, 40, 200, 5)); // position of first separator
rects.Add(new Rectangle(10, 80, 200, 5)); // position of second separator
// etc.

Em seguida, você copiar e colar essas rotinas código gerado em sua aplicação, e usá-los para o evento de pintura de cada página, assim:

SolidBrush brush = new SolidBrush(Color.PeachPuff);
foreach (Rectangle rect in rects)
{
    e.Graphics.FillRectangle(brush, rect);
}

Em seguida, você excluir todos os separadores do seu controle guia. O que você deve acabar com uma matriz do tipo List<Rectangle> (uma lista para cada página) que você instancia e preencha o evento Load do formulário ou seu construtor (usando o código gerado).

Eu tenho que reiterar o que Ed disse, no entanto. formas .net pode ter um muito de controles sobre eles, sem quaisquer problemas reais, então se você estiver executando em problemas decorrentes de ter muitos controles no formulário, você pode ser melhor fora de redesenhar a coisa toda .

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