2009-05-18 13 views
6

Umieszczam pasek zadań po lewej stronie, co powoduje otwarcie wielu okien pod paskiem zadań.Jaki jest właściwy sposób utworzenia formularza niepokazanego na pasku zadań systemu Windows?

Żadna z wartości System.Windows.Form.FormStartPosition nie uwzględnia paska zadań z wyjątkiem Manual. Czy to według projektu? To frustrujące. Chcę przestrzegać domyślnych wartości monitorów i wartości okien, które system operacyjny powinien wymuszać.

+0

Proszę opisać swoje pytanie więcej, nie jest to zbyt jasne. – abatishchev

+0

Zacząłem kopać dołem w prawo, ponieważ było to zbyt nieprzyjemne denerwujące. "Domyślna" pozycja wynikająca z API CreateWindowEx miała ten błąd na zawsze i prawdopodobnie pozostanie na zawsze więcej. –

Odpowiedz

5

Cóż, jeśli WinForm nie zrobi tego automatycznie, być może trzeba będzie ustawić to ręcznie.

Będziesz musiał użyć System.Windows.Forms.Screen.PrimaryScreen.WorkingArea, aby uzyskać obszar ekranu bez paska zadań i użyć tego prostokąta do ręcznego obliczenia obszaru uruchamiania dla formularza i ustawić go jako właściwość Form's Bounds. (Upewnij się, że formularz korzysta z FormStartPosition.Manual).

+1

Muszę również sprawdzić, czy pasek zadań jest ustawiony na automatyczne ukrywanie i czy użytkownik chce, aby pasek zadań pojawił się nad oknami. Argh. –

+0

Generalnie uważam, że jeśli chcesz, aby twój program był "niezły" i nie miał wszystkich tych małych zwierzaków, to naprawdę masz dużo dodatkowej pracy na swoich rękach. A szkoda, że ​​tylko niewielu użytkowników to doceni (ale bycie jednym z takich użytkowników jest wystarczająco ważnym powodem do wykonania pracy: D) –

1

Myślę, że nie ma sposobu .NET do tego. Nie widzę żadnych powodów, aby taki mieć.

Możesz zlokalizować taskbar position i umieścić formularz tam ręcznie.

+2

Powód, dla którego podałem, nie jest wystarczający? Domyślna pozycja startowa systemu Windows powinna respektować tasbkar, jeśli zaznaczono opcję "Zachowaj pasek zadań nad innymi oknami". Patrz OS X. Alternatywą jest ustalenie, jakie są powyższe preferencje, znalezienie monitora, na którym domyślnie mają być otwierane okna, wykrywanie, czy pasek zadań jest dołączony do okna, a jeśli tak, ręczne obliczanie pozycji początkowej . –

Powiązane problemy