Nyelv

ScrollableControl.AutoScroll Tulajdonság

Definíció

Lekéri vagy beállít egy értéket, amely jelzi, hogy a tároló lehetővé teszi-e a felhasználó számára, hogy a látható határokon kívül elhelyezett vezérlőkhöz görgessen.

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

Tulajdonság értéke

trueha a tároló engedélyezi az automatikus görgetést; egyéb esetben. false Az alapértelmezett érték a false.

Példák

Az alábbi kódpéldában látható, hogy a vízszintes és/vagy függőleges görgetősávok szükség szerint automatikusan meg vannak adva a AutoScroll tulajdonság beállításakor true. A példa futtatásához kövesse az alábbi lépéseket:

  1. Hozzon létre egy új Windows Forms-alkalmazást.

  2. Adjon hozzá egy Panel az űrlaphoz.

  3. Vegyen fel egy paneltTextBox, és nevezze el.text1

  4. Mozgassa a szövegdobozt úgy, hogy a jobb oldali rész túlnyúljon a panel jobb szélén.

    Csak a szövegdoboz azon részének körvonalát kell látnia, amely kívül esik a panelen. Ha a teljes szövegdoboz látható, a szövegdoboz az űrlapon van, és nem a panelen.

  5. Adjon hozzá egy Button az űrlaphoz.

  6. Adjon hozzá egy kezelőt a Click gomb eseményéhez.

  7. Adja hozzá a következő példakódot, és hívja meg a gomb kezelőjének Click használatával.

A példa futtatásakor csak a szövegdoboz azon része látható, amely a panel határain belül található. Amikor a gombra kattint, megjelenik egy vízszintes görgetősáv, amely lehetővé teszi a szövegdoboz többi részének megtekintését.

Ha a szövegdoboz egy részét a panel alján helyezi el, a gombra kattintva egy függőleges görgetősáv jelenik meg.

A példakód ellenőrzi, hogy a szövegdoboz kívül esik-e a panel határain, mielőtt beállítja a AutoScroll tulajdonságot true, és mielőtt beállítja a AutoScrollMargin tulajdonságot. Ez a korláton kívüli ellenőrzés nem szükséges. Ha AutoScroll be van állítva true, nem jelennek meg görgetősávok, ha a szövegdoboz teljesen a panelen belül van. Emellett a margókat az alapértelmezett 0,0-s beállításoknál is hagyhatja.

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

Megjegyzések

Ha trueez a tulajdonság lehetővé teszi, hogy a tároló virtuális mérete nagyobb legyen, mint a látható határok.

Note

Ha Windows Forms egy gyermekvezérlőt jobbra vagy alul rögzít (ControlRight vagy Bottom) a tároló úgy fog viselkedni, mintha AutoScrollfalse lett volna beállítva.

A Windows Formsban jelenleg olyan korlátozás van érvényben, amely megakadályozza, hogy az összes származtatott ScrollableControl osztály megfelelően működjön, ha mindkettő RightToLeft engedélyezve van, és AutoScroll a beállítás értéke true. Tegyük fel például, hogy egy vezérlőt, például Panel - vagy egy ( például Panel vagy FlowLayoutPanel) forrásból TableLayoutPanel származó tárolóosztályt - helyez el az űrlapon. Ha a tárolót AutoScroll-re állítja, majd a tároló egyik vagy több vezérlőjén beállítja a true tulajdonságot Anchor-ra, akkor soha nem jelenik meg görgetősáv. A származtatott ScrollableControl osztály úgy működik, mintha AutoScroll a következőre falselett volna állítva. Jelenleg az egyetlen áthidaló megoldás a ScrollableControl beágyazása egy másik ScrollableControl-be. Ha például szüksége van TableLayoutPanel-re ebben a helyzetben, elhelyezheti egy Panel vezérlőbe, és beállíthatja a AutoScroll-n a Panel-t true-re.

Note

AutoScroll automatikusan megőrzi a görgetősávok láthatóságát. Ezért a HScroll beállításnak nincs VScrolltrue hatása, ha AutoScroll engedélyezve van.

A következőre érvényes:

Lásd még