Toon posts:

Visual basic unload mdi child via textbox

Pagina: 1
Acties:

Verwijderd

Topicstarter
Owkeej, dit is mijn probleem:
Ik heb een soort van menu als MDI child op een MDI form (duh) Een van de opties is "Venster Sluiten" dit is gewoon een label en als je erop klikt dan sluit ie het venster middels "Unload Formnaam", ok allemaal geen probleem. Dan is er ook nog een textbox onderin waarin toetsencombinaties getypt kunnen worden om snel te kunnen werken, als je 99 intypt dan wordt het event van de label aangeroepen om het venster te kunnen sluiten. Werkt ook allemaal perfect totdat... Totdat ik het op Win 98 installeer, dan krijgt ie opeens een ongeldige bewerking bij het intypen van 99, niet bij het klikken op het label dus. Ik heb al geprobeert een tijdelijke boolean aan te maken die op true wordt gezet als er gesloten moet worden, dan op het einde van het textbox event een stel doevents en als dan gesloten moet worden het event aan te roepen of de window te sluiten, maar helaas lukt het niet. In het menu zijn invulvelden die leeggemaakt moeten worden dus via formnaam.hide kan het niet, het moet via unload formnaam.
De ongeldige bewerking is trouwens in User.dll, het is gecompileerd onder W2000 in Visual Studio 6 Enterprise edition, het is getest in meerdere versies van windows 98 op allerlei verschillende configuraties en verschillende talen, overal precies hetzelfde. Onder W2000, XP of NT4 is het allemaal geen enkel probleem. Heeft iemand tips of weet iemand hier meer over. Google + got search leverden helemaal nix op. Help me, dit is echt een vaag probleem!

Verwijderd

Topicstarter
The plot thickens:
Ik heb een nieuwe test applicatie gemaakt met 1 gewoon form, 1 label en 1 textbox, precies hetzelfde als eerst, maar nu zie ik ook nog iets anders, als ik op de label druk stopt het progje gewoon, als ik de code 99 intyp dan sluit de window wel op mijn w2000 systeem maar visual studio staat nog steeds op running. Wat is dit voor iets?

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
Private Sub Label1_Click()
Unload Form1
End Sub

Private Sub Text1_Change()
If Text1.Text = "99" Then Label1_Click
If Len(Text1.Text) = 2 Then Text1.Text = ""
End Sub

Dit is de code van mijn testapplicatie als ik de regel
code:
1
If Len(Text1.Text) = 2 Then Text1.Text = ""

weghaal dan werkt het wel goed, anders krijg ik dus die fouten. Kan het zo zijn dat het change event dat aangeroepen wordt als ik Text1.Text = "" zeg ervoor zorgt dat de form niet goed afgesloten wordt?
Wat kan ik hieraan doen?

Verwijderd

Topicstarter
Als ik deze code gebruik:
code:
1
2
3
4
5
6
7
8
9
10
11
Private Sub Label1_Click()
Unload Form1
End Sub

Private Sub Text1_Change()
Sluit = False
If Text1.Text = "99" Then Sluit = True
If Len(Text1.Text) = 2 Then Text1.Text = ""
DoEvents
If Sluit = True Then Label1_Click
End Sub

Dan werkt het onder visual studio weer goed, die blijft dan niet op running staan, maar in win 98 nog steeds hetzelfde probleem

  • Mir
  • Registratie: Maart 2001
  • Niet online

Mir

Op dinsdag 04 juni 2002 00:12 schreef Thorry het volgende:
The plot thickens:
Ik heb een nieuwe test applicatie gemaakt met 1 gewoon form, 1 label en 1 textbox, precies hetzelfde als eerst, maar nu zie ik ook nog iets anders, als ik op de label druk stopt het progje gewoon, als ik de code 99 intyp dan sluit de window wel op mijn w2000 systeem maar visual studio staat nog steeds op running. Wat is dit voor iets?
dan moet je gewoon nog even een END opnemen in je sluit code.
Dan stopt 'ie volledig.
Als je dit niet doet blijft 'ie ook als een soort 'virus' draaien; een normale gebruiker zal hem niet meer zien draaien. Je moet hem dan killen als process. Het vreet CPU als je een intensief (teken) programma hebt.

Gl

Verwijderd

Topicstarter
Je hebt niet goed gelezen, het gaat mij erom dat het menu venster afgesloten wordt, niet de applicatie. + dat je een applicatie nooit met END af moet sluiten maar eerst alles netjes afsluiten (Databases, netwerkverbindingen enz) en dan moet afsluiten door alles te unloaden. Ook heb je mijn andere reply niet gelezen, en het ging ook niet om dat het programma bleef draaien maar dat ik een foutmelding kreeg

Verwijderd

Topicstarter
code:
1
2
3
Private Sub Text1_Change()
Unload Form1
End Sub

Op deze manier nog steeds hetzelfde probleem onder w98
Nu dus zonder label, alleen een textbox. Is het onmogelijk onder w98 in een change event de parent te unloaden?

  • ATS
  • Registratie: September 2001
  • Laatst online: 12-02 13:46

ATS

Probeer eens deze dirty hack (gebruik ik ook nog wel eens in dit soort situaties):
-start in je change event een timer (op bijvoorbeeld 50 ms)
-laat in het timer event het form afsluiten

My opinions may have changed, but not the fact that I am right. -- Ashleigh Brilliant


Verwijderd

Topicstarter
Dan werkt het wel jah, maar wel vreemd dat je niet kan unloaden in een textbox change event. Ik heb ook een combobox change event gebruikt maar daar gaf ie al een runtime error
Pagina: 1