Toon posts:

[VB6] Opploppen voorkomen

Pagina: 1
Acties:

Verwijderd

Topicstarter
d

[ Voor 100% gewijzigd door Verwijderd op 12-02-2004 17:13 ]


Verwijderd

Topicstarter
d

[ Voor 90% gewijzigd door Verwijderd op 12-02-2004 17:13 ]


  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 12:56

RayNbow

Kirika <3

Verwijderd schreef op 20 december 2003 @ 14:53:
Iedere keer als ik iets verander in een textbox op een form in visual basic dan plopt dat scherm direct weer naar voren, terwijl ik liever heb dat het een oranje flits in de taakbalk geeft netzoals msn messenger.

...
Kan je misschien wat code tonen? Ik heb net een simpel testprogrammaatje geschreven als Form1 iets verandert in Form2's Textbox, dan blijft Form1 bij mij de focus houden.

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Verwijderd

Topicstarter
d

[ Voor 100% gewijzigd door Verwijderd op 12-02-2004 17:13 ]


Verwijderd

Je zou het kunnen proberen met:

form.load

dan word hij wel geladen maar niet getoond.

met

form.show

wordt hij getoond en geladen als dit nog niet is gebeurd

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 12:56

RayNbow

Kirika <3

Verwijderd schreef op 21 december 2003 @ 18:12:
Je zou het kunnen proberen met:

form.load

dan word hij wel geladen maar niet getoond.

...
Het is dan nog altijd Load FormX ;)

De oplossing voor dit probleem is dat als je een ander Form moet laden/tonen maar je wilt niet dat dat Form de Focus heeft, om het volgende te doen:

Visual Basic 6:
1
2
3
4
5
' FormX moet worden getoond
FormX.Show

' Huidige Form moet echter de Focus behouden
Me.SetFocus

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Verwijderd

Topicstarter
Het probleem is juist dat het huidige form alles kan zijn ook internet explorer bijvoorbeeld. Hij wordt namelijk aangeroepen vanuit een winsock.

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 12:56

RayNbow

Kirika <3

Verwijderd schreef op 21 december 2003 @ 19:42:
Het probleem is juist dat het huidige form alles kan zijn ook internet explorer bijvoorbeeld. Hij wordt namelijk aangeroepen vanuit een winsock.
Hmm...
Verwijderd schreef op 21 december 2003 @ 17:38:
Je hebt gelijk, mijn test programmaatje doet het ook niet.

Dan komt het waarschijnlijk omdat ik eerst form.show aanroep. Is er misschien een manier om te controleren of een form al geopend is, zodat ik dan niet show hoef aan te roepen?
Dan moet je waarschijnlijk zelf bijhouden welke Forms je geopend hebt (en dus ook welke gesloten zijn) en alleen een FormX.Show doen als het Form al geopend is.

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Verwijderd

Of een form geopend is kan je controleren met iets als:

code:
1
2
3
4
5
6
7
8
dim frm as form

For Each frm In Application.Forms
     If frm.Name = "NAAM" Then
     Else
          frm.show
     End If
Next frm

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-05 16:53
Wat je moet doen is wachten met het aanpassen van je textbox totdat men naar dat formulier gaat.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • johnwoo
  • Registratie: Oktober 1999
  • Laatst online: 27-05 19:21

johnwoo

3S-GTE

Gebruik de ShowWindow API in plaats van FormX.Show:

Visual Basic .NET:
1
2
3
4
5
6
Const SW_SHOWNA As Long = 8
Declare Function ShowWindow Lib "user32" Alias "ShowWindow" _
   (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long


ShowWindow FormX.hWnd, SW_SHOWNA

De NA in SW_SHOWNA staat voor No Activate; het venster wordt dus wel getoond maar krijgt geen focus. Visual Basic gebruikt voor z'n .Show method intern gewoon SW_SHOW.

[ Voor 5% gewijzigd door johnwoo op 22-12-2003 15:10 ]

4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1


Verwijderd

Topicstarter
d

[ Voor 100% gewijzigd door Verwijderd op 12-02-2004 17:14 ]

Pagina: 1