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 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.
Poznámka:
Ve 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ě existuje omezení v modelu Windows Forms, které brání všem třídám, ScrollableControl aby správně fungovaly, pokud RightToLeft je povolena a 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 jste v kontejneru nastavili true a pak nastavili AnchorAutoScroll vlastnost u jednoho nebo více ovládacích prvků uvnitř kontejneru na Right, pak se nikdy nezobrazí žádný posuvník. Třída odvozená z ScrollableControl aktů, jako by AutoScroll byla nastavena na false. Jediným alternativním řešením je vnoření uvnitř ScrollableControl jiné ScrollableControl. Pokud například potřebujete TableLayoutPanel pracovat v této situaci, můžete ho Panel umístit do ovládacího prvku a nastavit AutoScroll na Panel hodnotu true.
Poznámka:
AutoScroll udržuje viditelnost posuvníků automaticky. Proto nastavení HScroll nebo VScroll vlastnosti true nemá žádný vliv, pokud AutoScroll je povoleno.