ScrollableControl.AutoScroll Tulajdonság
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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:
Hozzon létre egy új Windows Forms-alkalmazást.
Adjon hozzá egy Panel az űrlaphoz.
Vegyen fel egy paneltTextBox, és nevezze el.
text1Mozgassa 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.
Adjon hozzá egy Button az űrlaphoz.
Adjon hozzá egy kezelőt a
Clickgomb eseményéhez.Adja hozzá a következő példakódot, és hívja meg a gomb kezelőjének
Clickhaszná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.