ScrollableControl.AutoScroll Özellik

Tanım

Kapsayıcının kullanıcının görünür sınırların dışına yerleştirilmiş tüm denetimlere kaydırmasına olanak verip vermediğini 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 AutoScrollyatay ve/veya dikey kaydırma çubuklarının true gerektiği gibi otomatik olarak nasıl sağlandığını gösterir. Örneği çalıştırmak için şu adımları izleyin:

  1. Yeni bir Windows Forms uygulaması oluşturun.

  2. Forma bir Panel ekleyin.

  3. Panele bir TextBox ekleyin ve olarak adlandırın text1.

  4. Sağ bölümün panelin sağ kenarının ötesine doğru genişlemesi için metin kutusunu hareket ettirin.

    Metin kutusunun yalnızca panelin sınırlarının dışında olan bölümünün ana hatlarını görmeniz gerekir. Metin kutusunun tamamı görünür durumdaysa, metin kutusu panelde değil formdadır.

  5. Forma bir Button ekleyin.

  6. Düğmenin Click olayı için bir işleyici ekleyin.

  7. 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çinde yer alan bölümünü görebilirsiniz. Düğmeye tıkladığınızda, metin kutusunun geri kalanını görmenizi sağlayacak yatay bir kaydırma çubuğu görüntülenir.

Metin kutusunun bir bölümünü panelin alt kısmının altı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 AutoScrollayarlamadan önce panelin sınırlarının trueAutoScrollMargin dışında olup olmadığını denetler. Bu sınır dışı denetim 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.

Note

Windows Forms'da bir alt denetim sağ veya alta (Control içerir Right veya Bottom) sabitlendiğinde Kapsayıcı olarak ayarlanmış AutoScrollgibi false davranır.

Windows Forms'ta şu anda hem ScrollableControl etkinleştirildiğinde hem de RightToLeftAutoScrollolarak ayarlandığında true türetilen tüm sınıfların düzgün çalışmasını engelleyen bir sınırlama vardır. Örneğin, formunuza - veya öğesinden Panel türetilmiş bir kapsayıcı sınıfı gibi Panel bir denetim (veya FlowLayoutPanelgibiTableLayoutPanel) yerleştirdiğini varsayalım. Kapsayıcıdaki AutoScrolltrue olarak ayarladıysanız ve kapsayıcının içindeki denetimlerden bir veya daha fazlası üzerindeki Anchor özelliğini Rightolarak ayarlarsanız hiçbir kaydırma çubuğu görüntülenmez. ScrollableControl'den türetilen sınıf, AutoScrollfalseolarak ayarlanmış gibi davranır. Şu anda tek geçici çözüm, ScrollableControl başka bir ScrollableControliçine yerleştirmenizdir. Örneğin, bu durumda çalışması için TableLayoutPanel gerekiyorsa, bunu bir Panel denetiminin içine yerleştirebilir ve AutoScroll'te Panel'yi trueolarak ayarlayabilirsiniz.

Note

AutoScroll kaydırma çubuklarının görünürlüğünü otomatik olarak korur. Bu nedenle, veya HScroll özelliğinin VScrolltrue olarak ayarlanması etkinleştirildiğinde AutoScroll hiçbir etkisi olmaz.

Şunlara uygulanır

Ayrıca bkz.