2016-02-26 24 views
5

Mam dziwny problem z moją aplikacją.Windows Forms dziwny rozmiar kontrolny w innym komputerze

Jak to działa normalnie

Formularz mam pokazując działa dobrze na każdym komputerze mam zainstalowaną aplikację z wyjątkiem jednego (opiszę problem później).

To jest formularz o minimalnym możliwym rozmiarze.

enter image description here

Gdybym zmienić rozmiar za to działa prawidłowo, jak widać w tym drugim obrazie.

enter image description here

To działa dobrze i pasuje idealnie.

Co robiłem

Wszystkie kontrole postaci są zakotwiczone prawidłowo i rozprowadzane w subcontrols, panele i wszystko, co potrzebne do prawidłowego rozmiaru. AutoScaleMode we wszystkich widokach jest ustawiony na czcionkę.

Działa to dobrze na wszystkich systemach Windows 7, Windows 8 i Windows 10, których próbowałem (jestem teraz na Windows 10).

Zmodyfikowałem DPI na moim komputerze i nadal poprawnie zmienia rozmiar.

Zmieniłem rozdzielczość ekranu i zmieniło się poprawnie (chociaż pracuję obecnie w rozdzielczości 1920 x 1080).

Zmieniłem rozmiar czcionki systemowej i działa dobrze.

Więc gdzie jest problem?

Oto dziwny problem. Jest jeden komputer (Windows 7, 1920x1080, 100% DPI), w którym aplikacja nie zmienia prawidłowo rozmiaru. Centralne elementy sterujące (pola datagridview i podglądu/porównania) są wyświetlane z bardzo małym rozmiarem. Następnie, jeśli zmieniam rozmiar formularza, te formanty zmieniają rozmiar zgodnie z dolną i prawą kotwicą, zgodnie z oczekiwaniami. Oto zdjęcie, które pokazuje to.

enter image description here

Czy ktoś mi wyjaśnić, dlaczego jest to działa w ten sposób tylko w jednym komputerze? (Jak już powiedziałem, próbowałem innych W7 sztuk i działa dobrze).

Pozdrowienia.

+0

To wygląda na problem z oprogramowaniem. Spróbuj ponownie zainstalować frameworkt, wykonaj aktualizacje systemu Windows, itp. Którą ramową wersję masz kierować? Spróbuj zainstalować na tym komputerze dokładne środowisko, którego potrzebuje twoja aplikacja. – Sinatr

+0

Rozwijam go na platformie .NET Framework 4. Dlaczego inne ramy mogą powodować ten problem? Mam na myśli, W instalatorze zdefiniowałem jako zależność .NET Framework 4 i nigdy nie miałem żadnego problemu z tego powodu. – Alex

+0

Czy jest jakieś dodatkowe oprogramowanie do zarządzania oknami na tym komputerze? Mam na myśli coś takiego: http://softwarerecs.stackexchange.com/questions/1816/program-to-save-visible-windows-locations-and-later-restore-the-layout http://www.techsupportalert.com /content/best-free-window-manager-resizer-arranger.htm Mogą być źródłem problemu. –

Odpowiedz

0

Zakotwiczenie może powodować czasami niespodzianki w WinForm. Jednym z możliwych rozwiązań jest użycie zawsze właściwości Dock i dokowanie/układanie elementów, podobnie jak WPF. Możesz osiągnąć wszystko za pomocą niewidocznych paneli i ustawiając właściwości: Dock, Padding i Margin.

Zobacz przykład tutaj: https://stackoverflow.com/a/32142897/5114784

+0

Jak już powiedziałem, problem polega na tym, że te formanty są obciążone mniejszy rozmiar niż oczekiwano. Właściwości Anchor i/lub Dock działają dobrze i są dobrze ustawione w formie. – Alex

+0

Siatka wydaje się być zakotwiczona, ponieważ rozciąga się podczas zmiany rozmiaru formularza. Zamiast tego należy go zadokować, aby uniknąć takich problemów. – taffer