Pergunta

Em nosso projeto, Sharp com fio, estamos tentando criar um componente de download semelhante às janelas de download do Firefox ou Safari.Ou seja, uma única lista de downloads de cima para baixo que são controles personalizados contendo barras de progresso, botões e outros itens.

Os requisitos são que haja uma única lista, com um elemento em cada linha.Cada elemento deve ser um controle personalizado.A lista inteira deve ser redimensionável dinamicamente, de modo que quando você a torna mais longa/curta, a lista adiciona uma barra de rolagem quando necessário e quando você a torna mais fina/larga, os controles personalizados devem ser redimensionados para a largura da lista.

Tentamos usar um FlowLayoutPanel mas não conseguimos redimensionar para funcionar da maneira que desejamos.De preferência, deveríamos apenas definir a ancoragem dos controles personalizados para Esquerda e Direita.Também pensamos em usar um TableLayoutPanel mas descobri que adicionar linhas dinamicamente era uma sobrecarga muito grande até agora.

Este deve ser um caso de uso bastante comum e me parece um pouco estranho que o FlowLayoutPanel não tem nenhuma maneira intuitiva de fazer isso. Alguém fez algo semelhante ou tem dicas ou truques para nos ajudar?

Saúde!
/Adão

Foi útil?

Solução

Se você não quiser usar ligação de dados (por meio do DataRepeater controle, como mencionado acima), você poderia usar um regular Panel controlar e definir seu AutoScroll propriedade como true (para ativar barras de rolagem).

Em seguida, você poderia adicionar manualmente seus controles personalizados e definir o Dock propriedade de cada um Top.

Outras dicas

O .NET 3.5 SP1 introduziu um Repetidor de dados Controle do Windows Forms, que parece fazer o que você deseja.Vincule-o à lista de "downloads" (ou ao que quer que sua lista represente) e personalize cada painel de itens para incluir os controles necessários.

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