I have two Forms. One with where all the main code is being executed. And the other form is displayed when clicking a menu item by using this method:
Form2 videoSettings = new Form2();
private void videoToolStripMenuItem_Click(object sender, EventArgs e)
{
videoSettings.Show();
}
The form which is then opened containsfields where the user gets to set some settings for the application.

Then when clicking the “save” button I want this variable: public int deviceIndex;
to be fetched from the original Form.
So I’m wondering if I can add any event or something in Form1 which detects when the save button is clicked in videoSettings (Form2)?
I would do it a different way. I’d separate the code between the UI handling and the business logic layers. So your scenario would run in such a way:
This way the problem doesn’t arise at all.
Example: (I’m not the winforms expert, beware it can be totally wrong from the POV of best winforms practices.)
Part 1 (first form):
Part 2: (business logic)
Part 3: (second form)
Note that this implementation ties the
Controllerand forms tighter than it could be done. In WPF, the decoupling is achieved by using the appropriateDataContext(but I don’t know how to do it properly in WinForms).