ScrollableControl.AutoScroll Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví hodnotu určující, zda kontejner umožňuje uživateli posunout se na jakékoli 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 povolí 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 vodorovné a/nebo svislé posuvníky jsou poskytovány automaticky podle potřeby, když AutoScroll je vlastnost nastavena na true. Pokud chcete spustit příklad, postupujte takto:
Vytvořte novou aplikaci model Windows Forms.
Přidejte do formuláře Panel.
Přidejte na panel a TextBox pojmenujte ho
text1.Přesuňte textové pole tak, aby pravá část přesahuje pravý okraj panelu.
Měli byste vidět jenom obrys části textového pole, která je mimo hranice panelu. Pokud je celé textové pole viditelné, je textové pole ve formuláři a ne na panelu.
Přidejte do formuláře Button.
Přidejte obslužnou rutinu události
Clicktlačítka.Přidejte následující ukázkový kód a zavolejte ho z obslužné rutiny
Clicktlačítka.
Když spustíte příklad, uvidíte jenom část textového pole, která je uvnitř hranic panelu. Po kliknutí na toto 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 hranice není nutná. Pokud AutoScroll je nastavená hodnota true, nezobrazí se žádné posuvníky, když je textové pole zcela v panelu. Můžete také ponechat okraje ve 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ž truetato vlastnost umožňuje kontejneru mít virtuální velikost, která je větší než jeho viditelné hranice.
Note
Ve model Windows Forms, když je podřízený ovládací prvek ukotvený vpravo nebo dole (Controlobsahuje Right neboBottom) se kontejner bude chovat, jako by AutoScroll byl nastaven .false
V současné době platí omezení v modelu model Windows Forms, které brání všem třídám odvozeným z ScrollableControl, aby správně fungovaly, pokud je povolena RightToLeft i AutoScroll je nastavena na true. Řekněme například, že do formuláře umístíte ovládací prvek, například Panel třídu kontejneru odvozenou z Panel formuláře (například FlowLayoutPanel nebo TableLayoutPanel). Pokud nastavíte AutoScroll v kontejneru na true a pak nastavíte vlastnost Anchor u jednoho nebo více ovládacích prvků uvnitř kontejneru na Right, pak se nikdy nezobrazí posuvník. Třída odvozená z ScrollableControl funguje, jako by byla AutoScroll nastavena na false. Jediným alternativním řešením je vnořit ScrollableControl uvnitř jiného ScrollableControl. Pokud například potřebujete, aby TableLayoutPanel fungoval v této situaci, můžete ho umístit do ovládacího prvku Panel a nastavit AutoScroll na Panel jako true.
Note
AutoScroll udržuje viditelnost posuvníků automaticky. Proto nastavení HScroll nebo VScroll vlastnosti true nemá žádný vliv, pokud AutoScroll je povoleno.