AdvancedHMI Software

General Category => Support Questions => Topic started by: thunting on January 30, 2024, 04:47:22 PM

Title: System.StackOverflowException while trying to closed form
Post by: thunting on January 30, 2024, 04:47:22 PM
Hello,
I keep getting an exception when I close any form in my application. Here are the details:

System.StackOverflowException
  HResult=0x800703E9
  Source=<Cannot evaluate the exception source>
  StackTrace:
<Cannot evaluate the exception stack trace>

The call stack trace shows a loop of 521 times while running the stock code listed below. The exception is thrown at My.Application.OpenForms(index).Close().

Thanks for any help

Code: [Select]
    '***************************************************************
    '* .NET does not close hidden forms, so do it here
    '* to make sure forms are disposed and drivers close
    '***************************************************************
    Private Sub MainForm_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing

        Dim index As Integer
        While index < My.Application.OpenForms.Count
            If My.Application.OpenForms(index) IsNot Me Then
                My.Application.OpenForms(index).Close()
            End If
            index += 1
        End While

    End Sub
Title: Re: System.StackOverflowException while trying to closed form
Post by: Archie on January 30, 2024, 05:17:48 PM
That piece of code should only be in the MainForm or the Mainmenu form, which would be the only form being closed to exit the application.
Title: Re: System.StackOverflowException while trying to closed form
Post by: thunting on January 31, 2024, 05:30:42 PM
Thanks Archie, that fixed it.
Title: Re: System.StackOverflowException while trying to closed form
Post by: thunting on February 01, 2024, 08:07:20 AM
I noticed after removing the above listed code from the forms, other than the Main, the application does not close. I realize this is what Archie mentions in his post, but I'm unsure how to fix the application not closing from other forms than the Main. Or is the expected method to remove the "close" button from the title bar of the other forms and force users to return to the Main form to close the application? Any suggestions?
Title: Re: System.StackOverflowException while trying to closed form
Post by: thunting on February 01, 2024, 08:08:58 AM
Sorry, I found my answer. Thanks for the help

Here is the link for the answer to my question.
https://www.advancedhmi.com/forum/index.php?topic=303.msg1069#msg1069 (https://www.advancedhmi.com/forum/index.php?topic=303.msg1069#msg1069)