Compartilhar via


ScrollableControl.AutoScroll Propriedade

Definição

Obtém ou define um valor que indica se o contêiner permite que o usuário role até quaisquer controles colocados fora de seus limites visíveis.

public:
 virtual property bool AutoScroll { bool get(); void set(bool value); };
public virtual bool AutoScroll { get; set; }
member this.AutoScroll : bool with get, set
Public Overridable Property AutoScroll As Boolean

Valor da propriedade

true se o contêiner habilitar a rolagem automática; caso contrário, false. O valor padrão é false.

Exemplos

O exemplo de código a trueseguir mostra como as barras de rolagem horizontal e/ou vertical são fornecidas automaticamente conforme necessário quando a AutoScroll propriedade é definida como . Para executar o exemplo, siga estas etapas:

  1. Crie um novo aplicativo Windows Forms.

  2. Adicione um Panel ao formulário.

  3. Adicione um TextBox ao painel e nomeie-o text1.

  4. Mova a caixa de texto para que a parte direita se estenda além da borda direita do painel.

    Você deve ver apenas uma estrutura de tópicos da parte da caixa de texto que está fora dos limites do painel. Se a caixa de texto inteira estiver visível, a caixa de texto estará no formulário e não no painel.

  5. Adicione um Button ao formulário.

  6. Adicione um manipulador para o Click evento do botão.

  7. Adicione o código de exemplo a seguir e chame-o do manipulador do Click botão.

Ao executar o exemplo, você só poderá ver a parte da caixa de texto que está dentro dos limites do painel. Ao clicar no botão, você verá uma barra de rolagem horizontal exibida que permitirá que você veja o restante da caixa de texto.

Se você posicionar uma parte da caixa de texto abaixo da parte inferior do painel, verá uma barra de rolagem vertical ao clicar no botão.

O código de exemplo verifica se a caixa de texto está fora dos limites do painel antes de definir a AutoScroll propriedade truee antes de definir a AutoScrollMargin propriedade. Essa verificação fora dos limites não é necessária. Se AutoScroll estiver definido como true, nenhuma barra de rolagem será exibida quando a caixa de texto estiver completamente dentro do painel. Além disso, você pode deixar as margens em suas configurações padrão de 0,0.

void SetAutoScrollMargins()
{
   /* If the text box is outside the panel's bounds, 
          turn on auto-scrolling and set the margin. */
   if ( text1->Location.X > panel1->Location.X || text1->Location.Y > panel1->Location.Y )
   {
      panel1->AutoScroll = true;

      /* If the AutoScrollMargin is set to less 
                than (5,5), set it to 5,5. */
      if ( panel1->AutoScrollMargin.Width < 5 || panel1->AutoScrollMargin.Height < 5 )
      {
         panel1->SetAutoScrollMargin( 5, 5 );
      }
   }
}
private void SetAutoScrollMargins()
 {
    /* If the text box is outside the panel's bounds, 
       turn on auto-scrolling and set the margin. */  
    if (text1.Location.X > panel1.Location.X || 
       text1.Location.Y > panel1.Location.Y)
    {
       panel1.AutoScroll = true;
       /* If the AutoScrollMargin is set to less 
          than (5,5), set it to 5,5. */
       if( panel1.AutoScrollMargin.Width < 5 || 
          panel1.AutoScrollMargin.Height < 5)
       {
          panel1.SetAutoScrollMargin(5, 5);
       }
    }
 }
Private Sub SetAutoScrollMargins()
    ' If the text box is outside the panel's bounds,
    ' turn on auto-scrolling and set the margin. 
    If (text1.Location.X > panel1.Location.X) Or _
        (text1.Location.Y > panel1.Location.Y) Then
        panel1.AutoScroll = True
        ' If the AutoScrollMargin is set to less
        ' than (5,5), set it to 5,5. 
        If (panel1.AutoScrollMargin.Width < 5) Or _
            (panel1.AutoScrollMargin.Height < 5) Then
            
            panel1.SetAutoScrollMargin(5, 5)
        End If
    End If
End Sub

Comentários

Quando true, essa propriedade permite que o contêiner tenha um tamanho virtual maior que seus limites visíveis.

Observação

Nos Windows Forms, quando um controle filho é ancorado à direita ou à parte inferior (Control contém Right ou Bottom) o Contêiner se comportará como se AutoScroll estivesse definido falsecomo .

Atualmente, há uma limitação nos Windows Forms que impede que todas as classes derivadas agissem ScrollableControl corretamente quando ambas estiverem RightToLeft habilitadas e AutoScroll estiverem definidas como true. Por exemplo, digamos que você coloque um controle como Panel - ou uma classe de contêiner derivada de Panel (como FlowLayoutPanel ou TableLayoutPanel) - em seu formulário. Se você definir AutoScroll no contêiner true e, em seguida, definir a Anchor propriedade em um ou mais dos controles dentro do contêiner como Right, em seguida, nenhuma barra de rolagem será exibida. A classe derivada de ScrollableControl atos como se AutoScroll fossem definidos como false. Atualmente, a única solução alternativa é aninhar o interior de ScrollableControl outro ScrollableControl. Por exemplo, se você precisar TableLayoutPanel trabalhar nessa situação, poderá colocá-la dentro de um Panel controle e definir AutoScroll como Paneltrue.

Observação

AutoScroll mantém a visibilidade das barras de rolagem automaticamente. Portanto, a configuração da HScroll propriedade true ou VScroll como não tem efeito quando AutoScroll está habilitada.

Aplica-se a

Confira também