这是我做的,作为一个简单的测试......
我添加了一个简单的包装类,以便我可以更改ToString调用上发生的事情(我只想看到组合框中列出的名称)
private class ScreenObj
{
public Screen screen = null;
public ScreenObj(Screen scr)
{
screen = scr;
}
public override string ToString()
{
return screen.DeviceName;
}
}
Run Code Online (Sandbox Code Playgroud)
在表单加载事件中我添加了这个:
foreach(Screen screen in Screen.AllScreens)
{
cboScreens.Items.Add(new ScreenObj(screen));
}
Run Code Online (Sandbox Code Playgroud)
对于组合框的选定索引更改事件,我有:
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();
p.X = scrObj.screen.WorkingArea.Left;
p.Y = scrObj.screen.WorkingArea.Top;
this.Location = p;
}
Run Code Online (Sandbox Code Playgroud)
它将表单移动到我的每个屏幕的左上角.