clamp
clamp

Reputation: 34006

.NET/WinForms: maximize a window on a specific screen

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!

Upvotes: 4

Views: 4614

Answers (4)

toddmo
toddmo

Reputation: 22406

  Public Shared Sub MoveForm(Item As Form, ScreenNumber As Integer, Optional X As Integer = 0, Optional Y As Integer = 0)
    With Screen.AllScreens(ScreenNumber).Bounds
      X -= .Left 'translate overall coordinates to screen coordinates
      Y -= .Top
    End With
    Item.Location = New System.Drawing.Point(X, Y)
  End Sub

Upvotes: 0

serhio
serhio

Reputation: 28586

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);
            }
        }

Upvotes: 4

RvdK
RvdK

Reputation: 19790

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();
}

Upvotes: 2

Dave Swersky
Dave Swersky

Reputation: 34810

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.

Upvotes: 1

Related Questions