Barra de posicionamento numa legenda
private void xGameCreditsButton_Click(object sender, EventArgs e)
{
this.xWinnerLabel.BackColor = Color.White;
this.xCreditsScrollBar.Visible = true;
this.xWinnerLabel.Text = "This game was made possible with the help of: blah bla blah";
}
4 answers
Em vez de uma etiqueta, use uma caixa de texto e configure o ScrollBars
, MultiLine
e propriedades de acordo com as suas necessidades. Para desactivar a edição da caixa de texto (e, portanto, torná-la semelhante a uma legenda), use a propriedade ReadOnly.
Se não tiver absolutamente de ser uma legenda, poderá fazer disto um campo de edição multi-linhas apenas para leitura. O controlo de edição deslocar-se-á automaticamente.
Um controlo de caixa de texto só para leitura será muito mais fácil de usar.
Se quiser mesmo usar uma legenda, poderá colocar a legenda dentro de um controlo de Painel controlável e configurar a propriedade de auto-correcção da legenda como true.
Uma vez que pode haver uma razão para não usar uma caixa de texto (não querer que o texto seja selecionável e copiável, por exemplo) aqui está outra solução que funciona para mim:
Coloque um painel no local onde quer que a legenda esteja, configure a propriedade de AutoScroll para true. Então coloque a etiqueta no painel, Ancore-a e configure a propriedade AutoSize para true. Isto fará com que o painel forneça as barras de posicionamento se o texto da etiqueta se estender fora do painel.
Pode ter de marcar o tamanho máximo para a legenda se quiser que o texto só se desloque numa direcção (defina um tamanho máximo de largura se quiser apenas deslocamento vertical ou definir uma altura máxima se quiser apenas deslocamento horizontal).