What phil.o and Wes Aday stated is true - the behavior you witness is expected.
However, if you limit the size of each form, then you can control how much of the desktop landscape the forms will occupy when they are maximized. One way you achieve this is by overriding the OnSizeChanged event handler. The following application demonstrates this solution.
using System;
using System.Windows.Forms;
namespace MaximizeWindowOverride
{
public partial class Form1 : Form
{
const int MAXIMUM_HEIGHT = 500;
const int MAXIMUM_WIDTH = 600;
FormWindowState current_window_state;
public Form1 ( )
{
InitializeComponent ( );
current_window_state = this.WindowState;
}
protected override void OnSizeChanged ( EventArgs e )
{
base.OnSizeChanged ( e );
if ( ( this.WindowState == FormWindowState.Maximized ) &&
( current_window_state != FormWindowState.Maximized ) )
{
this.Width = MAXIMUM_WIDTH;
this.Height = MAXIMUM_HEIGHT;
this.WindowState = FormWindowState.Normal;
}
current_window_state = this.WindowState;
}
}
}
Hope that helps.