This is a piece of code I used for an application that needed to be displayed in 2 screens setup as extended view. I used a simple calculation to know the selected screen's coordinates and place the form in its center. To try out the code listed below create 2 forms (Form1 and Form2). In form1 create a combobox and a button, name them screensComboBox and displayButton respectively. In Form2 set its StartupPosition to Manual. Then paste the code below in Form1 replacing the whole class.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//display a list of available screens
foreach (Screen S in Screen.AllScreens)
{
screensComboBox.Items.Add("Screen " +
S.DeviceName.Substring(S.DeviceName.Length - 1, 1));
}
screensComboBox.SelectedIndex = 0;
}
private void displayButton_Click(object sender, EventArgs e)
{
//get the selected screen's X and Y coordinates, and its size
Rectangle screenRec =
Screen.AllScreens[screensComboBox.SelectedIndex].Bounds;
Form2 form2 = new Form2();
//screens starting pixel + half its size - half the size of the form
form2.Left = screenRec.X + ((screenRec.Width / 2) - (form2.Width / 2));
form2.Top = screenRec.Y + ((screenRec.Height / 2) - (form2.Height / 2));
form2.Show();
}
}