Author Topic: System.StackOverflowException while trying to closed form  (Read 1988 times)

thunting

  • Newbie
  • *
  • Posts: 6
    • View Profile
System.StackOverflowException while trying to closed form
« 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

Archie

  • Administrator
  • Hero Member
  • *****
  • Posts: 5322
    • View Profile
    • AdvancedHMI
Re: System.StackOverflowException while trying to closed form
« Reply #1 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.

thunting

  • Newbie
  • *
  • Posts: 6
    • View Profile
Re: System.StackOverflowException while trying to closed form
« Reply #2 on: January 31, 2024, 05:30:42 PM »
Thanks Archie, that fixed it.

thunting

  • Newbie
  • *
  • Posts: 6
    • View Profile
Re: System.StackOverflowException while trying to closed form
« Reply #3 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?

thunting

  • Newbie
  • *
  • Posts: 6
    • View Profile
Re: System.StackOverflowException while trying to closed form
« Reply #4 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
« Last Edit: February 01, 2024, 08:27:25 AM by thunting »