Вы уверены, что screens[1]
ваш вторичный? Дайте screens[0]
попробовать. Ваш код в основном правильный.
Хорошо, я проверил, вам нужно будет сделать это после Show ():
n.Show();
setFormLocation(n, screens[1]);
, который дает некоторое нежелательное мерцание. Но вы, вероятно, можете сделать:
n.SetBounds(-100, -100, 10, 10); // or similar
n.Show();
setFormLocation(n, screens[1]);