Avatar billede angelenglen Nybegynder
19. oktober 2011 - 16:48 Der er 11 kommentarer og
1 løsning

VB.Net Fullscreen form oven på startmenuen i Windows 7

Jeg har et program med en form der kører fullscreen uden border, dvs. fylder hele skærmen.

Mit problem er at startmenuen ligger sig oven på programmet få sekunder efter load.

Hvis jeg derefter klikker på formen et par gange kommer den "op til overfladen" og dækker startmenuen igen.

Det er ikke smart, for mit program skal gerne køre fuldautomatisk, og ikke kræve at jeg manuelt klikker på det for at få det til at dække startmenuen.

Min form er sat til at være topmost, og jeg kører en BringToFront() onload.

Jeg har også prøvet at køre en Activate() på formen 5 sekunder efter load, det har ikke løst problemet.

Hvis jeg sætter en timer til at køre en BringToFront hvert sekund, er den topmost, det er dog ikke en løsning jeg kan bruge, da jeg indimellem viser andre forms, der via BringToFront vises oven på min main-form - hvis jeg så efterfølgende kører flere BringToFront på min main-form, så ville den jo dække disse forms.


Håber det giver mening :-)
Avatar billede Mads Larsen Nybegynder
20. oktober 2011 - 08:26 #1
Hej

Du skriver du har held med at få den på toppen, hvis du bruger en timer - kan du ikke evt. bruge en timer som kører det første minut og derefter stopper?

eller inden for det minut skal du også have en anden form frem?
Avatar billede angelenglen Nybegynder
20. oktober 2011 - 10:46 #2
I visse situationer vises de andre forms inden for 5 sekunder, og dermed risikerer de at blive gemt bag min main-form hvis den bliver trukket  op hele tiden :-/
Avatar billede Mads Larsen Nybegynder
20. oktober 2011 - 12:00 #3
Ja det kan jeg godt se bliver lidt et problem så.

Men ville man så kunne smide i funktionen, at den ligesom prøver at BringtoFront med alle de forms som kunne være åbne - og så sørge for at main formen bliver sat til at starte med - så ville alle de næste jo stadig være over main formen.
Avatar billede angelenglen Nybegynder
20. oktober 2011 - 12:46 #4
Det der undrer mig mest er at startmenuen overhovedet ligger sig over programmet.

Nogen tips til hvordan jeg finder ud af hvordan det sker?
Avatar billede Mads Larsen Nybegynder
20. oktober 2011 - 12:57 #5
Når du mener startmenuen - er det så den menu man får frem ved at trykke Windows tast - eller er det processlinjen ?

Starter programmet selv op efter man logger ind eller starter du manuelt programmet?
Avatar billede angelenglen Nybegynder
20. oktober 2011 - 14:14 #6
Jeg mener processlinjen :-)

Og programmet starter selv op efter login, via en Scheduled Task ("Planlagt opgave").
Avatar billede angelenglen Nybegynder
20. oktober 2011 - 14:15 #7
Men problemet opstår også hvis jeg starter programmet manuelt.
Avatar billede Mads Larsen Nybegynder
20. oktober 2011 - 14:29 #8
http://www.codeproject.com/KB/cs/FullScreenDotNetApp.aspx

Det lyder lidt som dette problem.

Det jeg faldt mere over om du har taskbaren til at være "Bevar altid proceslinjen øverst"

Har du prøvet at oprette et test program for at se om den også laver den fejl ? Jeg kan ikke umiddelbart få den til det her. Sidder dog på en WinXP..
Avatar billede angelenglen Nybegynder
20. oktober 2011 - 16:15 #9
I mellem tiden har jeg lavet noget med nogle timere, der i løbet af de første 10 sekunder får mine "lag" af forms til at placere sig i den korrekte rækkefølge over startmenuen, ved en kombination af følgende fire metoder:

Form.BringToFront()
Form.Topmost = true
Form.Activate()
Form.Focus()

Rækkefølgen kan stadig ødelægges ved at alt-tab'e eller åbne startmenuen manuelt, men det er egentligt ikke så vigtigt, eftersom det er meningen at programmet skal startes ved logon på en computer uden tilsluttet skærm eller tastatur - så hvis nogen nogensinde piller ved det, er det mig via fjernbetjening - og så kan jeg selv sørge for at det ser fint ud inden jeg forlader den.

Jeg ved godt det er et kompromis, men nogle gange vinder tidspresset :-/
Avatar billede angelenglen Nybegynder
20. oktober 2011 - 16:16 #10
Ps. læg et svar for points :-D
Avatar billede Mads Larsen Nybegynder
21. oktober 2011 - 08:35 #11
Jamen så smider jeg da et svar..

Du kan jo evt. lukke explorer.exe hvis det er? :) så har du da ihver fald ikke linjen ;)
Avatar billede angelenglen Nybegynder
21. oktober 2011 - 10:59 #12
lol faktisk ikke en dårlig idé, hvis jeg ikke allerede fundet en anden måde :-)

(men måske også lidt drastisk hehe)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester