2010-09-16 22 views
12

15x15 = 225 düğmeyi içeren ve yeniden boyutlandırılabilmesi gereken bir denetim yapıyorum. Çünkü bir ızgara, demirleme ve yerleştirme işe yaramaz. Hem TableLayoutPanel'i hem de el ile yerleştirmek ve boyutlarını kontrol etmek için yeniden boyutlandırma olayını ele çalıştım. Her iki durumda, yeniden boyutlandırma kabul edilemez şekilde yavaştır. Mizanpajı elle tuttuğumda yeniden boyutlandırma işlevindeki Düzenleme/Devam Etme işlevi yardımcı olmaz.C# Winforms: Birçok Denetimi Etkin Bir Şekilde Görüntüleme

Bir şeyleri hızlandırmak için değiştirebileceğim temel bir şey var mı, yoksa bu yalnızca yerel denetimlerin bir sınırlaması mı? Anladığım kadarıyla, sıfırdan özel bir kontrol oluşturabilirim, tıklamaları ele alıyorum ve kendimi boyayorum - eğer mümkünse yerel kontrollerle uğraşmayı tercih ederim.

Düzenleme

Ben düğmelerin fazla olduğunu biliyorum. Benim sorum teknik bir tanesidir; UI tasarımı hakkında değil.

+2

Çok fazla sayıda düğme var. Ne kadar çok düğmeye ihtiyacın var? Alastair Pitts için –

+0

+1. GUI'de görünen birçok düğmeden kaçınmalıyız. Son kullanıcıların da benimle aynı fikirde olduğunu düşünüyorum. –

+0

Uygulamayı neden bu kadar uzun sürdüğünü görmek için yeniden boyutlandırırken profilleyin. –

cevap

6

WinForms, maalesef aynı anda bu çok sayıda denetimin görüntülenmesini sağlamaz.

Durumunuzda olsaydım, önce formu birkaç sayfadan bölebilir miyim diye düşünürdüm. Çoğu durumda, kullanıcı için anlaşılması daha kolay olacaktır. Ancak sizin durumunuzda bu bir seçenek gibi görünmemektedir. Mayın tarama gemisi oyunu gibi bir şey mi yapıyorsun? Orada hepsi tıklanabilir bir düğme ızgara var. Böyle bir durumda, tüm düğmeleri tek bir kontrolde birleştirebileceğiniz özel bir sahipli kontrol için gitmenizi öneririm. 225 düğmeyi içeren bir bileşik kontrol oluşturmayın - bu hiç de yardımcı olmaz :-)

Son seçenek WPF'ye geçmek olabilir. WPF, daha hızlı olabileceği için donanım hızlandırılmış oluşturma kullanır, ancak bu kadar çok kontrol ile bile yardımcı olabilir.

+0

Gotcha. Bana "sadece bunu başaramaz" ın ötesinde bir şeye işaret edebilir misiniz - bir şeylerin neden öldüğünü anlamanıza yardımcı olabilecek bir blog yazısı/performans açıklaması var mı? Smart-alecky denememek için +1 teknik sorudan farklı. Biliyorum, çok fazla buton var ve bunu anlıyorum. Özel kontrol öyle. – phillipwei

+0

Burada kişisel deneyimden bahsediyorum :-) Herhangi bir blog gönderisinden çok daha iyi ... hehe. –

+0

Gerçekten yok. Benzer şeyler yapmaya çalıştım ve tamamen kullanılamaz bir formla sona erdi. Performans, bozulduğu belirli bir noktaya kadar tamamdır. Belki 10x10 ızgara, belki 12x12 veya 8x8 ile uzaklaşabilirsiniz, ama belli bir noktada kullanılamaz hale gelecektir. –

İlgili konular