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 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
true
pokud 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:
Vytvořte novou aplikaci model Windows Forms.
Panel Přidejte do formuláře .
Přidejte na TextBox panel a pojmenujte ho
text1
.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.
Button Přidejte do formuláře .
Přidejte obslužnou rutinu
Click
pro událost tlačítka.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 true
hodnotu . Ř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 Paneltrue
hodnotu .
Poznámka
AutoScroll automaticky udržuje viditelnost posuvníků. Proto nastavení HScroll vlastnosti nebo VScroll nemá true
žádný vliv, pokud AutoScroll je povolená.