2009-08-03 6 views
15

Bir Windows Forms uygulaması geliştiriyorum (.NET 2.0, VS 2005).İçerdiği denetim çok büyük olduğunda kaydırma çubukları yeniden boyutlandırılabilir bir panelde nasıl görünür?

this.panel1.Dock=DockStyle.Fill; 

Bu panel sadece bir kap olarak kullanılır: I esas dinamik formu ile boyutlandırılır bir paneli içeren bir biçime sahiptir. Çalışma zamanında, bir özel denetim eklenecek:

: Bu özel denetim minimum boyut şartı vardır

UserControl uc=new UserControl(); 
panel1.Controls.Add(uc); 
uc.Dock=DockStyle.Fill; 

olarak bunun tüm kontrolünü göstermek için çok küçük alırsa içeren panelde görünmesini kaydırma çubukları istiyorum

this.panel1.AutoScroll=true; 

Bu çalışmaz. Dock özelliği yerine Anchor özelliğini kullanarak paneli yeniden boyutlandırmaya çalıştım.

cevap

24

Kullanıcı denetiminizi sabitlemeyin. Bunun yerine Anchor özelliğini kullanın. (Dört tarafa sabitlenir). Set Kullanıcı denetimin MinimumSize özelliği onun AutoScrollMinSize özelliğini ayarlayın sürece görünmez

Panelin kaydırma panelin AutoScrollMinSize özelliğini

ayarlayın. Kullanıcı denetiminin Dock'u Doldurma olarak ayarlamak, panelin kaydırma çubuklarını gizliyor gibi görünüyor.

+10

Dock özelliği, AutoScrollMinSize ayarlandığı sürece hem panel hem de kullanıcı denetimi için iyidir (http://social.msdn.microsoft.com/Forums/ tr-tR/Win/iplik/56267eb1-25af-4df2-82a3-0498563c7eef). – Mac

+0

Sabitleme, bağlama yerine aynı değildir. Mesela sabit bir kontrol görünmez yaparsam, otomatik olarak aşağıdaki kontrolleri yeniden düzenler. Demirleme size bu yeteneği vermez. Takma işlemi çok faydalıdır, ancak OP gibi, her zaman bir Otomatik Autoscroll kontrolü ile beklediğiniz gibi çalışmadığını söyler - kenetlenme kontrolünün minimum boyutunu ayarlarken bile – Gwynge

2

InitializeComponent iletişim halinde, bu yaptım ve o iş gibi görünüyordu sonra:

tableLayoutPanel1.AutoScrollMinSize = tableLayoutPanel1.GetPreferredSize(new Size(1, 1)); 

Ben tablodaki alt-panelleri bir grup var. Tüm satırlar ve sütunlar Otomatik Boyutlandır olarak ayarlanmıştır. Bazı nedenlerden dolayı, kontrol, tercih edilen boyutta kaydırma denetimine yeterince akıllı değildir.

1

Panel.AutoScroll = * Gerçek eserler - ŞİMDİ! Hem panel hem de kullanıcı kontrolü için yukarıdaki fikirleri oynadım ve oynadım ve sonunda her şeyi varsayılana sıfırladım, Autoscroll'u panele ayarla, ve ... voila! her nasılsa yine çalışır ... Şekil ...

İlgili konular