views:

370

answers:

3

hello, i have a dual monitor setup and i want my c# application to maximize its window on a specific Screen.

how can i do that?

thanks!

+1  A: 

You might get this to work by moving the window all the way right or left before maximizing. This should cause the window to maximize to that screen when it does maximize.

Dave Swersky
this works if you also set the window to visible after moving it. thanks!
clamp
+2  A: 

This is a screen management code for a similar scope in one of my projects:

        // screenId in my case is 1(first) or 2(second)
        int screenId = RegistryManager.ScreenId;
        // DualScreen management            
        if (screenId > 0)
        {
            // Have 2 screens
            if (System.Windows.Forms.Screen.AllScreens.Length == 2)
            {
                if (screenId == 1) // first
                    this.Location = new System.Drawing.Point(System.Windows.Forms.Screen.AllScreens[0].Bounds.Left, 0);
                else // second
                    this.Location = new System.Drawing.Point(System.Windows.Forms.Screen.AllScreens[1].Bounds.Left, 0);
            }
        }
serhio
+1  A: 

You use the Screen class to find the 2nd monitor link

Code found here

function void showOnMonitor2()
{
Screen[] sc;
sc = Screen.AllScreens;
//get all the screen width and heights
Form2 f = new Form2();
f.FormBorderStyle = FormBorderStyle.None;
f.Left = sc[1].Bounds.Width;
f.Top = sc[1].Bounds.Height;
f.StartPosition = FormStartPosition.Manual;
f.Location = sc[1].Bounds.Location;
Point p = new Point(sc[1].Bounds.Location.X, sc[1].Bounds.Location.Y);
f.Location = p;
f.WindowState = FormWindowState.Maximized;
f.Show();
}
PoweRoy
You'll need some error checking to make sure there is more than 1 screen.
Matt Joslin
Yes i know, this is only a copy paste to show how it works. Any sanity checks should always be applied and checked when using someone else code
PoweRoy