CreateParams can only be called once but setting the opacity to 0 someone else could easily say Form1 form = new Form1(); form.Opacity = 100; form.ShowDialog(); now form is visible, where they can't make another instance of CreatParams to make Form Visible.