Springen naar inhoud


- - - - -
VS 2015

Fout Bij Het Maken Van De Vensterkoppeling

VS2015

  • Log in a.u.b. om te beantwoorden
Er zijn 6 reacties in dit onderwerp

#1 ArieM

ArieM

    Junior Developer

  • Leden
  • PipPip
  • 82 berichten
    Laatst bezocht 02 dec 2020 16:09

Geplaatst op 09 november 2020 - 17:07

Ik heb een programma dat eindigt met een button waarin een End statement staat. Soms (niet altijd) krijg ik bij het afsluiten de mededeling:  System.ComponentModel.Win32Exception: Fout bij het maken van de vensterkoppeling.
Het programma stopt dan niet.
Wat betekent dit en hoe kan ik het oplossen?

#2 Damic

Damic

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 782 berichten
    Laatst bezocht gisteren, 10:51
  • LocatieMechelen (BE)

Geplaatst op 15 november 2020 - 13:30

Volgens mij is dat een scheve vertaling. Als je kunt zet viual studio in het engels, als je dan een fout krijgt zul je veel meer oplossingen vinden ;)

Maar wat doe je nog als je je hoofdvenster afsluit?

#3 ArieM

ArieM

    Junior Developer

  • Leden
  • PipPip
  • 82 berichten
    Laatst bezocht 02 dec 2020 16:09

Geplaatst op 17 november 2020 - 13:41

Als ik het hoofdvenster sluit klik ik op de knop "stop debugging".
Als ik het programma gebruik vanaf de .exe dan stopt het gelukkig wel normaal.

NB: Ik heb nog geen kans gezien om visual studio in het engels te zetten.

#4 Damic

Damic

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 782 berichten
    Laatst bezocht gisteren, 10:51
  • LocatieMechelen (BE)

Geplaatst op 17 november 2020 - 21:48

Waarom doe je dat op Stop Debugging drukken? Als je normaal je programma afsluit stopt VS zelf met debuggen.

Maar wat ik bedoel met: "Maar wat doe je nog als je je hoofdvenster afsluit?" wat gebeurd er nog in je Closing sub
Visual Basic Code:
 Private Sub Form1_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing

Ow en End-statement oppassen ermee: https://docs.microso...s/end-statement je kan beter close() gebruiken om je programma te stoppen, dan word alles mooi afgesloten en word ook je closing sub aangeroepen

#5 ArieM

ArieM

    Junior Developer

  • Leden
  • PipPip
  • 82 berichten
    Laatst bezocht 02 dec 2020 16:09

Geplaatst op 19 november 2020 - 20:09

Bedankt voor je reactie.

Sorry, ik ben (nog steeds) een rookie developer. Ik gebruikte altijd het End statement om een application af te sluiten, maar ik begrijp nu dat dat niet de juiste manier is. Ik dacht dat je het Close() statement alleen gebruikte om forms af te sluiten.
Wat staat er eigenlijk in de Sub Form1_Closing?

#6 Damic

Damic

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 782 berichten
    Laatst bezocht gisteren, 10:51
  • LocatieMechelen (BE)

Geplaatst op 19 november 2020 - 20:25

Standaard is dat leeg maar je kan er nog dingen inzetten als je bvb met een database werkt om die verbinding volledig te sluiten

Een voorbeeld vanuit Telemeter Indicator, dit een systray applicatie dus het hoofd form is frmSettings
Visual Basic Code:
	Private Sub FrmSettings_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
		If bUnload = True Then 'word het echt afgesloten of gewoon het form dichtdoen
			If BGW.IsBusy Then BGW.CancelAsync() 'is de backgroundworker nog bezig? Zoja stoppen met uitvoeren
			If btnSave.Enabled = True Then ' er zijn nog instellingen niet opgeslagen
				If MsgBox(ErrorMessage(10), CType(MsgBoxStyle.Information & MsgBoxStyle.YesNo, Global.Microsoft.VisualBasic.MsgBoxStyle), ErrorMessageTitle(7)) = MsgBoxResult.Yes Then btnSave_Click(Me, e)
			End If
			If bShowGraph Then frmGraph.Close() 'is het grgafieken form nog open? Afsluiten
			If bShowLog Then frmLog.Close() 'is het logboek nog open? Afsluiten

			tmrUpdate.Enabled = False 'update time afzetten
			TrayIcon.Visible = False 'trayicon uit de systreay verwijderen, anders blijft ie mooi staan
			ClearCookies() 'koekjes verwijderen
			If Not BETA Then My.Settings.DataSend = mnuSettingsDataSend.Checked

			My.Settings.Update = tbInterval.Value 'interval naar settings kopieren
'doe nog wat log database dingen
			If Not mnuSettingsSaveLog.Checked Then dblog.Execute("DELETE FROM tblLog WHERE (UTCtime BETWEEN " & ToUnix(Date.Parse(Date.UtcNow.Day & "/" & Date.UtcNow.Month & "/" & Date.UtcNow.Year & " 00:00:00")) & " AND " & ToUnix(Date.Parse(Date.UtcNow.Day & "/" & Date.UtcNow.Month & "/" & Date.UtcNow.Year & " 23:59:59")) & ");") 'SaveLog()
			If mnuSettingsSave.Checked Then SaveData()
			My.Settings.Use = My.Settings.Use + 1 '
			My.Settings.Save() 'settings opslaan
			dblog = Nothing
			dbdata = Nothing
			Application.DoEvents()
			End 'ja ik doen hier end om zeker te zijn dat alles weg is :)
		Else
			Dim x(2) As String
			x(0) = Location.X.ToString
			x(1) = Location.Y.ToString
			My.Settings.LocationMain = String.Join(",", x)
			e.Cancel = True
			Hide()
			Exit Sub
		End If
	End Sub


#7 ArieM

ArieM

    Junior Developer

  • Leden
  • PipPip
  • 82 berichten
    Laatst bezocht 02 dec 2020 16:09

Geplaatst op 20 november 2020 - 13:05

Dank je wel, weer wat geleerd!

Nog één vraag: is application.exit ook een goede oplossing?





Ook met taq VS 2015, VS2015 voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[VS 2015] Untitled 1

Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)