2010-10-01 25 views
33

SuspendLayout() ve ResumeLayout() hakkında okuyorum. Anlayamadığım şey, neden bunu kullanmalıyım/kullanmalıyım? Çalışma zamanında denetimleri bir kontrol kabına eklediğinizde kullandığınızı biliyorum.C# Neden SuspendLayout() kullanıyorsunuz?

O vs. Dock, Anchor, Location,

gibi ayar özellikleri ile ilgili bir şey var Ama ek değer, askıya ve ResumeLayout() ait olduğunu anlamıyorum. Bu yöntemler neye dikkat ediyor?

cevap

50

Temel olarak, mizanpajla ilgili birden fazla özelliği ayarlamak veya birden çok alt öğe eklemek istiyorsanız, ancak düzenlerinizin sürekli olarak değişikliklerinizi etkilemesinden kaçının. Her şeyin hazır olduğu "sadece düzeni en sonunda düzenleyin.

+2

Hala SuspendLayout() 'ın ne yaptığını anlamıyorum. SuspendLayout() işlevini neden kullanmalıyım? Bu özellikleri SuspendLayout() 'ı kullanmadan da ayarlayabilirsiniz. – Martijn

+7

@Martijn: Evet, bunları ayarlayabilirsiniz ... ve düzen sistemi zaman harcayacak (ve belki de ekranı çirkin gösterecek), çeşitli özellikleri ayarlarken düzeni değiştirecek - bunu yapmak yerine * bir kez * herşeyi ayarlamayı bitirdi. Uzayı eşit olarak dağıtmaya çalışan karmaşık bir düzeniniz olduğunu ve 100 öğeyi eklediğinizi varsayalım. * Yapıyorsunuz * gerçekten * ilkini ekledikten sonra o alanı çalışmak istiyoruz, sonra ikincisini ekledikten sonra üçüncü vs. ekledikten sonra? –

+0

Jon Skeet'in yazdığı gibi: Çoklu özellikleri (ya da bir grid görünümünde birden çok satır) girdiğinizde, ekran her değişiklik için yenilenmez, yalnızca ResumeLayout çağrıldığında yenilenir. Performansı ve tek ekran titremesini kaydeder. –

İlgili konular