Norbert
M.
Nobody's perfect.
Call me Nobody ;)
Temat: Rysowanie kontrolek
Chciałbym podyskutować trochę o sposobie prezentowania danych i wydajności rysowanie kontrolek (na Windows.Fomsach, nie w WPF). W jaki sposób prezentujecie dane na formatce (ograniczmy się do TextBox’ów jako pól prezentujących wartości i Label’ów dane te prezentujące). Załóżmy, że mam do zaprezentowania na formatce dane faktury. Kilka problemów:1. Jak układacie kontrolki? Tak, żeby było w miarę ładnie. Wiadomo, że dane muszą być grupowane logicznie, jeżeli jest ich dużo zajmują kilka wierszy. Fajnie, jeśli są ułożone równo (w kolumnach), ale problem jest, jeżeli szerokości TextBox’ów są różne. Oczywiście można wszystko ładnie ułożyć dla jednego rozmiaru okna, no ale wiadomo, że najlepiej by było, gdyby aplikacja była wizualnie elastyczna (dobra dla kilku ustawień rozdzielczości). Oczywiście można którąś z kontrolek w wierszu rozciągać w zależności od szerokości forma (tak, żeby dostosować się do obu krawędzi formatki), ale to też jest średnio ładne, najlepiej by było, żeby rozciągały się proporcjonalnie. Ja używam w tym celu TableLayoutPanelów, ale nie jest to rozwiązanie kiepskie, ze względu na sztywną liczbę kolumn. Np.: ( w pierwszym wierszu mam nazwę firmy na całej długości (1 kolumna), w drugim adres( ulicę, dom, lokal – 3kolumny), a w trzecim miasto i kod (2 kolumny) – dla każdego wiersza musiałbym użyć nowego TableLayoutPanel’a. W jaki sposób Wy radzicie sobie z takimi sytuacjami??
2. Często przy dużej ilości kontrolek mam problemy z ich sprawnym odrysowywaniem. Jeżeli pokazuje sobie formatkę zawsze chwilę twa zanim odrysuje ona wszystkie swoje elementy, czemu towarzyszy miganie, dostosowywanie rozmiarów, znikanie obiektów itp. Jeżeli dodam w trakcie inicjalizacji ładowanie danych proces jeszcze spowalnia. A gwoździem do trumny jest stosowanie kontrolek, które rysują w GDI+. Podwójne buforowanie formatki, nie za wiele daje. Czy znacie jakiś sposób, żeby przyśpieszyć proces odrysowywania i żeby nie trwał on na oczach usera??
Będę wdzięczny za wszelki sugestie i linki do artykułów na ten temat.