Programmatic button click throws 'System.StackOverflowException' exception
button, c#, click, simulate, stack-overflow
Solution
Edit Not a guess. Telling the button to click itself from within itself is most definitely causing an infinite loop. This causes the method to get called over and over, filling up the stack and causing it to overflow.
My guess is that calling `PerformClick()` is causing the current method you posted to get called again, thus causing an infinite call loop and resulting in a `StackOverflowException`.
To prevent this, you need to fix the logic somewhere in your code so that:
if (txtpass.Text == "1234")
evaluates to `false` and the click method doesn't get called over and over. You can probably achieve this by setting `txtpass.Text = ""` right before you cause it to click itself again.
Problem
I have written a WinForms program in C#.Net to click a button programmatically within a password form. `Form1` loads and shows `Form2` as a dialogue box. The application will close if DialogResult is anything other that DialogResult.OK. So far I have a button click event, which is coded as follows: ``` if (txtpass.Text == "") { MessageBox.Show("You need to enter a password", "Password", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); txtpass.Focus(); } else { if (txtpass.Text == "1234") { radButton1.DialogResult = DialogResult.OK; radButton1.PerformClick(); } else { MessageBox.Show("Password Incorrect", "Password", MessageBoxButtons.OK, MessageBoxIcon.Error); txtpass.Text = ""; txtpass.Focus(); } } ``` I use `radButton1.PerformClick();`, but running the program gives me the following message: ``` An unhandled exception of type 'System.StackOverflowException' occurred in mscorlib.dll ``` I'm unsure what is causing this exception to throw.