2011-01-13 30 views
10

Bazen, bir resim kutusunun 100x100 olduğunu söyleyebilirim. Ancak göstereceği görüntü aslında 100x400'dür.PictureBox denetiminde kaydırma çubuklarını nasıl gösterebilirim?

Resim kutusunun boyutunu artırmak istemiyorum. Bunun yerine, dikey bir kaydırma çubuğu (veya gerekirse yatay) oluşturmak istiyorum.

Araç kutusunda kaydırma çubuğu bulamadım, bu yüzden kod yazmam gerekiyor. Ama nasıl? Ve hala bir hata yapmadım ve araç çubuğundaki kaydırma çubuğunu görmedim merak ediyorum. Özür dilerim, o zaman :(

cevap

19

ateşlendiğinde, ama bu gerçek iş gibi geliyor. daha iyi bir yolu var.

  1. Formunuza bir Panel denetimi ekleyin ve AutoScroll property değerini "True" olarak ayarlayın. Bu, denetimin, şu anda görünen sınırlarının dışında kalan içerik içerdiğinde kaydırma çubuklarını otomatik olarak göstermesine neden olur. .NET Framework tek bir kod satırı yazmanıza gerek kalmadan kapakların altında sizin için her şeyi halledecektir.

  2. Eklemiş olduğunuz Panel denetiminizin içine sürükleyin ve PictureBox denetiminizi bırakın.Panel denetimi, daha sonra, AutoScroll özelliği sayesinde, çocuk denetimlerinden birinin görünen alanından daha büyük olduğunu ve kaydırma çubuklarını göstereceğini algılayacaktır. Kullanıcı kaydırma çubuklarını hareket ettirdiğinde, görüntünüzün görülebilen PictureBox içindeki kısmı otomatik olarak ayarlanır. Sihirli.

(bir kap olduğu gibi PictureBox AutoScroll özelliğini sağlayan şeydir ScrollableControl temel sınıf, doğrudan miras değil çünkü bir Panel denetimi kullanmak zorunda sebebi.)

+2

Bu çözüm çalışması – Niroshan

+1

yapmak için 'PictureBox' '' AutoSize 'için' SizeMode 'özelliğini ayarlamak zorunda kaldı Ve ben istiyorum PictureBox'un Panel'e yerleştirilemediğini unutmayın. – miroxlav

2

Resim kutusunda otomatik kaydırma çubuğu yok, ancak VScrollBar (ve HScrollBar) denetimini forma ekleyebilir ve görüntüyü her seferinde farklı bir ofsetle yeniden ayarlayarak görüntüyü kaydırma işlemini elle yapabilirsiniz. Kaydırma olay sana ayrı kaydırma çubuğu kontrolleri eklemek ve hangi PictureBox resim çizilir ofset ile Scroll olayları senkronize herhalde.

+1

Bunu yapmak için çok tembelim. ;-) –

+0

Yolunuz çok daha hızlı, ancak kaydırma yaparken veya kaydırma çubuklarını nereye taşıyacağınız görüntüyü hangi yöne kaydırmanın yolunu bulmaktan rahatsızlık duymuyorsunuz. – xpda

+0

Ben hayal kırıklığına uğramak istemiyorum: (....... ama orada güzel bir fikriniz var. – Voldemort

3

Bu çalıştı ve iyi çalıştı. Ancak, resim kutusu panelde yuvalanmışsa, resim kutusunun otomatik olarak ana panelin boyutuna ayarlanacağını ve daha büyük ayarlanamayacağını (en azından hiçbir şekilde bulamayacağımı) unutmayın. Bu tekniğin amacını ortadan kaldırır. Öyleyse - picturebox'ı panele koy, ama yerine koyma, ve mükemmel çalışır.

İlgili konular