Here is the solution for you: (which I use myself)
Form form = new Form();
form.SetBounds(100, 100, 800, 600);
form.TopMost = true;
form.Text = "Title";
form.Show(); //You can access to parent form.
//OR
form.ShowDialog(); //You can't access to parent form.
EDIT :
This is my method, which I use to make my game fullscreen. I find this method better than graphics.IsFullScreen.
[DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
public static extern IntPtr FindWindow(String className, String windowName);
[DllImport("user32.dll", SetLastError = true)]
static extern void SwitchToThisWindow(IntPtr hWnd, bool turnOn);
System.Windows.Form gameForm;
protected override void Initialize()
{
/* ------ OPTIONAL ------ */
graphics.PreferredBackBufferWidth = 1280;
graphics.PreferredBackBufferHeight = 720;
graphics.PreferMultiSampling = false;
graphics.ApplyChanges();
/* ---------------------- */
System.Windows.Forms.Application.EnableVisualStyles();
gameForm = (System.Windows.Forms.Form)System.Windows.Forms.Form.FromHandle(Window.Handle);
gameForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
//gameForm.TopMost = true;
gameForm.WindowState = System.Windows.Forms.FormWindowState.Maximized;
gameForm.Bounds = System.Windows.Forms.Screen.PrimaryScreen.Bounds;
gameForm.GotFocus += new EventHandler(gameForm_GotFocus);
base.Initialize();
}
void gameForm_GotFocus(object sender, EventArgs e)
{
gameForm.WindowState = System.Windows.Forms.FormWindowState.Maximized;
gameForm.Bounds = System.Windows.Forms.Screen.PrimaryScreen.Bounds;
}
protected override void LoadContent()
{
//...
gameForm.Focus();
gameForm.BringToFront();
SwitchToThisWindow(gameForm.Handle, true);
}