ScrollableControl.AutoScroll Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Kapsayıcının kullanıcının görünür sınırları dışına yerleştirilmiş denetimlere kaydırıp kaydırmayacağını belirten bir değer alır veya ayarlar.
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
Özellik Değeri
true
kapsayıcı otomatik kaydırmayı etkinleştirirse; aksi takdirde , false
.
false
varsayılan değerdir.
Örnekler
Aşağıdaki kod örneği, özellik olarak ayarlandığında true
yatay ve/veya dikey kaydırma çubuklarının AutoScroll gerektiğinde otomatik olarak nasıl sağlandığını gösterir. Örneği çalıştırmak için şu adımları izleyin:
Yeni bir Windows Forms uygulaması oluşturun.
Forma bir Panel ekleyin.
Panele bir TextBox ekleyin ve adını verin
text1
.Metin kutusunu, sağ bölümün panelin sağ kenarının ötesine doğru uzanması için hareket ettirin.
Metin kutusunun panelin sınırlarının dışında olan bölümünün yalnızca bir ana hattını görmeniz gerekir. Metin kutusunun tamamı görünür durumdaysa, metin kutusu panelde değil formdadır.
Forma bir Button ekleyin.
Düğme olayı
Click
için bir işleyici ekleyin.Aşağıdaki örnek kodu ekleyin ve düğmenin işleyicisinden çağırın
Click
.
Örneği çalıştırdığınızda, metin kutusunun yalnızca panelin sınırları içindeki bölümünü görebilirsiniz. Düğmeye tıkladığınızda, metin kutusunun geri kalanını görmenize olanak tanıyan yatay bir kaydırma çubuğu görüntülenir.
Metin kutusunun bir bölümünü panelin alt kısmına yerleştirirseniz, düğmeye tıkladığınızda dikey bir kaydırma çubuğu görürsünüz.
Örnek kod, metin kutusunun özelliği olarak ayarlamadan önce ve özelliği true
ayarlamadan AutoScrollMargin önce panelin sınırlarının AutoScroll dışında olup olmadığını denetler. Bu sınır dışı denetimi gerekli değildir. olarak ayarlanırsa AutoScrolltrue
, metin kutusu tamamen panel içinde olduğunda kaydırma çubuğu görüntülenmez. Ayrıca, kenar boşluklarını varsayılan ayarları olan 0,0'da bırakabilirsiniz.
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
Açıklamalar
olduğunda true
, bu özellik kapsayıcının görünür sınırlarından daha büyük bir sanal boyuta sahip olmasını sağlar.
Not
Windows Forms bir alt denetim sağ veya alta sabitlendiğinde (Control içerir Right veya Bottom) Kapsayıcı olarak ayarlanmış false
gibi AutoScroll davranır.
şu anda Windows Forms'de türetilen ScrollableControl tüm sınıfların her ikisi de RightToLeft etkinleştirildiğinde ve AutoScroll olarak ayarlandığında true
düzgün çalışmasını engelleyen bir sınırlama vardır. Örneğin, formunuza ( veya gibi ) türetilmiş FlowLayoutPanelPanelTableLayoutPanelbir kapsayıcı sınıfı gibi Panel bir denetim yerleştirdiğinizi varsayalım. Kapsayıcıyı olarak ayarlarsanız AutoScroll ve kapsayıcının Anchor içindeki bir veya daha fazla denetimde özelliğini olarak Rightayarlarsanız hiçbir kaydırma çubuğu görüntülenmez.true
sınıfından ScrollableControl türetilen sınıf, olarak ayarlanmış false
gibi AutoScroll davranır. Şu anda tek geçici çözüm, içine başka bir ScrollableControliç içe ScrollableControl geçmektir. Örneğin, bu durumda çalışmanız gerekiyorsaTableLayoutPanel, bunu bir Panel denetimin içine yerleştirebilir ve üzerinde Panel olarak true
ayarlayabilirsinizAutoScroll.
Not
AutoScroll kaydırma çubuklarının görünürlüğünü otomatik olarak korur. Bu nedenle, etkinleştirildiğinde AutoScroll veya VScroll özelliğinin true
olarak ayarlanmasının HScroll hiçbir etkisi olmaz.