I have main form.I invoke form2 from Mainform using `form2.ShowDialog(Application.OpenForms["MainForm"]);`
then i invoke another form from form2

```
    this.Hide();
    form3.ShowDialog(Application.OpenForms["MainForm"]);
    this.Dispose();

```

Everything works fine but when a form3 is displayed i get a glimpse of any window displayed in the background ie:If i had opened MS paint put it in the background the Paint window will come on top of my window for time less than a second and automatically go to the backgroud.
Why is this behavior.How can i correct it?