ScrollableControl.AutoScroll Vlastnost

Definice

Získá nebo nastaví hodnotu označující, zda kontejner umožňuje uživateli posunout se na všechny ovládací prvky umístěné mimo jeho viditelné hranice.

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

Hodnota vlastnosti

truepokud kontejner umožňuje automatické posouvání; v opačném případě . false Výchozí hodnota je false.

Příklady

Následující příklad kódu ukazuje, jak se vodorovné a/nebo svislé posuvníky poskytují automaticky podle potřeby, když AutoScroll je vlastnost nastavená na true. Pokud chcete spustit příklad, postupujte takto:

  1. Vytvořte novou aplikaci model Windows Forms.

  2. Panel Přidejte do formuláře .

  3. Přidejte na TextBox panel a pojmenujte ho text1.

  4. Přesuňte textové pole tak, aby pravá část přesahuje pravý okraj panelu.

    Měl by se zobrazit jenom obrys části textového pole, která je mimo hranice panelu. Pokud je viditelné celé textové pole, je textové pole ve formuláři a ne na panelu.

  5. Button Přidejte do formuláře .

  6. Přidejte obslužnou rutinu Click pro událost tlačítka.

  7. Přidejte následující ukázkový kód a zavolejte ho z obslužné rutiny Click tlačítka.

Při spuštění příkladu uvidíte jenom část textového pole, která je uvnitř hranic panelu. Po kliknutí na tlačítko se zobrazí vodorovný posuvník, který vám umožní zobrazit zbytek textového pole.

Pokud umístíte část textového pole pod dolní část panelu, zobrazí se po kliknutí na tlačítko svislý posuvník.

Ukázkový kód zkontroluje, zda je textové pole mimo hranice panelu před tím, než nastaví AutoScroll vlastnost na true, a před tím, než nastaví AutoScrollMargin vlastnost. Tato kontrola mimo rozsah není nutná. Pokud AutoScroll je nastavená hodnota true, nezobrazí se při úplném dokončení textového pole v panelu žádné posuvníky. Okraje můžete také nechat na výchozím nastavení 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

Poznámky

Když true, tato vlastnost umožní kontejneru mít virtuální velikost, která je větší než jeho viditelné hranice.

Poznámka

V model Windows Forms, když je podřízený ovládací prvek ukotvený vpravo nebo dole (Controlobsahuje Right nebo Bottom), bude se kontejner chovat, jako by AutoScroll byl nastavený na false.

V model Windows Forms v současné době existuje omezení, které brání správnému fungování všech odvozených ScrollableControl tříd, pokud jsou povolené a RightToLeftAutoScroll jsou nastaveny na truehodnotu . Řekněme například, že do formuláře umístíte ovládací prvek, například Panel – nebo třídu kontejneru odvozenou z Panel (například FlowLayoutPanel nebo TableLayoutPanel). Pokud nastavíte AutoScroll u kontejneru na true a potom nastavíte Anchor vlastnost u jednoho nebo více ovládacích prvků uvnitř kontejneru na Righthodnotu , nezobrazí se žádný posuvník. Třída odvozená z ScrollableControl funguje, jako by AutoScroll byla nastavena na false. V současné době je jediným alternativním řešením vnořit do jiného ScrollableControlobjektu ScrollableControl . Pokud například potřebujete TableLayoutPanel v této situaci pracovat, můžete ho Panel umístit do ovládacího prvku a nastavit AutoScroll na Paneltruehodnotu .

Poznámka

AutoScroll automaticky udržuje viditelnost posuvníků. Proto nastavení HScroll vlastnosti nebo VScroll nemá true žádný vliv, pokud AutoScroll je povolená.

Platí pro

Viz také