将表单移动到指定的屏幕

我试图弄清楚如何将指定的System.Windows.Forms.Form移动到另一个主屏幕上。 我有可用屏幕列表的ComboBox,用户可以选择他喜欢的任何一个屏幕,我的应用程序应该将其中一个窗口移动到该屏幕上。

我的笔记本电脑上只有一个屏幕,没有外接显示器,因此我计算机上的ComboBox只提供一个选项。 我认为最小化所需的窗口,将其左侧的角移动到所选屏幕的边界并且最大化将完成这项工作,对吧? 我只是无法测试它。 这是一个好方法吗?

提前致谢!

这是我做的,作为一个简单的测试……

我添加了一个简单的包装器类,以便我可以更改ToString调用上发生的事情(我只想看到combobox中列出的名称)

private class ScreenObj { public Screen screen = null; public ScreenObj(Screen scr) { screen = scr; } public override string ToString() { return screen.DeviceName; } } 

在表单加载事件中我添加了这个:

 foreach(Screen screen in Screen.AllScreens) { cboScreens.Items.Add(new ScreenObj(screen)); } 

对于combobox的选定索引更改事件,我有:

 private void cboScreens_SelectedIndexChanged(object sender, EventArgs e) { object o = cboScreens.SelectedItem; if(null == o) return; ScreenObj scrObj = o as ScreenObj; if(null == scrObj) return; Point p = new Point(); pX = scrObj.screen.WorkingArea.Left; pY = scrObj.screen.WorkingArea.Top; this.Location = p; } 

它将表单移动到我的每个屏幕的左上角。