ScrollableControl.AutoScroll Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan atau menetapkan nilai yang menunjukkan apakah kontainer memungkinkan pengguna untuk menggulir ke kontrol apa pun yang ditempatkan di luar batas yang terlihat.
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
Nilai Properti
true jika kontainer memungkinkan pengguliran otomatis; jika tidak, false. Nilai defaultnya adalah false.
Contoh
Contoh kode berikut menunjukkan bagaimana bilah gulir horizontal dan/atau vertikal disediakan secara otomatis sesuai kebutuhan saat AutoScroll properti diatur ke true. Untuk menjalankan contoh, ikuti langkah-langkah berikut:
Buat aplikasi Formulir Windows baru.
Tambahkan Panel ke formulir.
TextBox Tambahkan ke panel dan beri nama
text1.Pindahkan kotak teks sehingga bagian kanan meluas di luar tepi kanan panel.
Anda hanya akan melihat kerangka bagian kotak teks yang berada di luar batas panel. Jika seluruh kotak teks terlihat, kotak teks berada di formulir dan bukan di panel.
Tambahkan Button ke formulir.
Tambahkan handler untuk
Clickperistiwa tombol.Tambahkan kode contoh berikut dan panggil dari handler tombol
Click.
Saat menjalankan contoh, Anda hanya dapat melihat bagian kotak teks yang berada di dalam batas panel. Saat Anda mengklik tombol, Anda akan melihat bilah gulir horizontal muncul yang akan memungkinkan Anda melihat kotak teks lainnya.
Jika Anda memposisikan bagian dari kotak teks di bawah bagian bawah panel, Anda akan melihat bilah gulir vertikal saat Mengklik tombol.
Contoh kode memeriksa untuk melihat apakah kotak teks berada di luar batas panel sebelum mengatur AutoScroll properti ke true, dan sebelum mengatur AutoScrollMargin properti. Pemeriksaan di luar batas ini tidak diperlukan. Jika AutoScroll diatur ke true, tidak ada bilah gulir yang akan muncul ketika kotak teks sepenuhnya berada di dalam panel. Selain itu, Anda dapat membiarkan margin pada pengaturan default 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
Keterangan
Ketika true, properti ini memungkinkan kontainer untuk memiliki ukuran virtual yang lebih besar dari batas yang terlihat.
Note
Di Formulir Windows ketika kontrol anak dilabuhkan ke kanan atau bawah (Control berisi Right atau Bottom) Kontainer akan berperilaku seolah-olah AutoScroll diatur ke false.
Saat ini ada batasan dalam Formulir Windows yang mencegah semua kelas yang berasal dari ScrollableControl bertindak dengan benar ketika RightToLeft diaktifkan dan AutoScroll diatur ke true. Misalnya, Anda menempatkan kontrol seperti Panel - atau kelas kontainer yang berasal dari Panel (seperti FlowLayoutPanel atau TableLayoutPanel) - pada formulir Anda. Jika Anda mengatur AutoScroll pada kontainer ke true lalu mengatur properti Anchor pada satu atau beberapa kontrol di dalam kontainer ke Right, maka tidak ada bilah gulir yang pernah muncul. Kelas yang berasal dari ScrollableControl bertindak seolah-olah AutoScroll sudah diatur menjadi false. Saat ini, satu-satunya solusinya adalah menyarangkan ScrollableControl di dalam ScrollableControllain. Misalnya, jika Anda perlu TableLayoutPanel untuk bekerja dalam situasi ini, Anda dapat menempatkannya di dalam kontrol Panel dan mengatur AutoScroll pada Panel ke true.
Note
AutoScroll mempertahankan visibilitas bilah gulir secara otomatis. Oleh karena itu, mengatur HScroll properti atau VScroll tidak true berpengaruh ketika AutoScroll diaktifkan.