Avatar billede stigc Nybegynder
08. oktober 2004 - 09:45 Der er 14 kommentarer og
1 løsning

Forms hænger sammen

Jeg har en applikation med en hovedform. Fra denne kan man starte en wizard som åbner op i en ny form. Begger forms ligger nede i proceslinien.

Bruger åbner nu Explore som er maixmeret. Han trykker nu på wizarden ned i processlinien, som dermed dukker op foran Explorer. Desværre følger hovedformen også med. Hvordan undgår jeg dette? De skal være uafhængig af hinanden. Jeg har prøvet at sætte den nye forms parent til at være desktop, men det set ikke ud til at hjælpe.
Avatar billede martin_moth Mester
08. oktober 2004 - 10:24 #1
Kan du ikke - via kode - minimere hovedformen i wizard-formens _Activate event?

Altså

Private sub frmWizard_Activate
  frmHovedform.windowstate = minimized
End sub

Skrevet ud fra hukommelsen, måske er koden anderledes.
Avatar billede stigc Nybegynder
08. oktober 2004 - 10:28 #2
Jo, men jeg vil hellere have den skal ligge bagest.
Avatar billede martin_moth Mester
08. oktober 2004 - 11:18 #3
Jamen, det gør den jo også helt automatisk. Hvad er problemet?
Avatar billede stigc Nybegynder
09. oktober 2004 - 12:56 #4
Den skal også ligge bag Explorer.
Avatar billede sjh Nybegynder
09. oktober 2004 - 13:03 #5
nu ved jeg ikke havd metode du bruger til at åbne din Wizard.. men prøv sådan..

'-------------------------- MainForm --------------------------
Option Explicit

Private Sub cmdWizard_Click()
  frmWizard.Show ' <-- Din WizardForm
  Me.WindowState = 1
End Sub

Private Sub Form_Unload(Cancel As Integer)
Dim objForm As Object
  For Each objForm In Forms
    Unload objForm
  Next
End Sub
'-------------------------- MainForm --------------------------
Avatar billede stigc Nybegynder
09. oktober 2004 - 16:09 #6
"Me.WindowState = 1" Er det minimize?

Begge forms skal være synlige på skrivebordet. Explorer skal kunne ligge imellem hovedformen, som ligger bagest og wizardformen som ligger forrest.
Avatar billede stigc Nybegynder
09. oktober 2004 - 16:13 #7
Altså ingen minimize.
Avatar billede sjh Nybegynder
09. oktober 2004 - 16:14 #8
ja 1 er minimize
Avatar billede sjh Nybegynder
09. oktober 2004 - 16:15 #9
okææ.. så rem den -> ' Me.WindowState = 1
Avatar billede stigc Nybegynder
09. oktober 2004 - 16:19 #10
Det løser ikke mit problem !!!
Avatar billede sjh Nybegynder
09. oktober 2004 - 16:24 #11
Så kan jeg ikke lige se hvad du mener..

hvis du bruger frmWizard.Show (Show uden at angive.. style, ownerform) så hænger de da ikke sammen..
Avatar billede stigc Nybegynder
09. oktober 2004 - 16:37 #12
Læs mit oprindelige spm, ellers kommer en uddybning her...

Udgangspunktet er en hovedform placeret midt på skræmen, også synlig ned i taskbaren (Den i bunden).
Fra denne åbnes en ny form (min wizardform), som popper op foran hovedformen. Begge forms er synlige i taskbaren.
Nu åbnes Explorer, maximeret, som dermed dækker for både hovedformen og den nye form.
Brugeren aktivere wizardformen nede i taskbaren, og den dukker nu op foran Explorer. Desværre komme hovedformen også med! Jeg ønsker at hovedformen ligger bagest.
Avatar billede sjh Nybegynder
09. oktober 2004 - 17:00 #13
okææ nu kan jeg godt se hvad du mener.. men det tror jeg ikke du kan lave om på.. kun ved at minimere hovedformen.. eller at du køre din wizardform som en exe-fil fra hovedformen..
Avatar billede slumtiger Nybegynder
11. oktober 2004 - 12:17 #14
Prøv med SetWindowPos:

Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOACTIVATE = &H10
Const SWP_SHOWWINDOW = &H40
Private Declare Sub SetWindowPos Lib "User32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)

Private Sub Form_Activate()
    SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW                            Or SWP_NOMOVE Or SWP_NOSIZE
End Sub

Du kan så smide hoved allerbagerst og den lille form forrest.
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