What happens is a new object frmTagger is created, which tries to create a new object of frmTagger, which in turn tries to create another object, and so on, and so on.
All you need do is remove that line, and also change the line...
frmTagger .Close()
to be
Close()
The reason it will work then is because the project properties its already set that the startup object is frmTagger, so you don't need to create the object in code.
The only time you'd use the method you're using, is if you want to create this object from another module or class. For example if you're startup object is Sub Main rather than a particular form.
Public Class frmTagger
Inherits System.Windows.Forms.Form
Dim frmTagger As New frmTagger()
#Region " Windows Form Designer generated code "
Public Sub New()
MyBase.New()
'This call is required by the Windows Form Designer.
InitializeComponent()
'Add any initialization after the InitializeComponent() call
End Sub
...
...
I've seen 'OutOfStackSpace' exceptions before, when I accidently had a repeating procedure (ex. A procedure that calls itself will give you this exception).
A StackOverflowException, I believe, is something similar. Your declaring a new form (frmTagger is set as the startup object, so its being instantiated automatically by .NET), and that form is re-declaring itself.
Just remove the code in bold, and your program should work just fine.