我试图弄清楚如何将指定的 System.Windows.Forms.Form 移动到主屏幕以外的另一个屏幕上。我有一个带有可用屏幕列表的组合框,用户可以在其中选择他喜欢的屏幕,并且我的应用程序应该将其窗口之一移动到该屏幕上。
我的笔记本电脑上只有一个屏幕,没有外接显示器,因此我的计算机上的 ComboBox 仅提供一种选项。我认为最小化所需的窗口,将其左角移动到所选屏幕边界的中心并最大化就可以完成这项工作,对吧?我只是无法测试它。这是一个好方法吗?
提前致谢!
这就是我所做的,作为一个简单的测试......
我添加了一个简单的包装类,以便我可以更改 ToString 调用中发生的情况(我只想查看组合框中列出的名称)
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));
}
对于组合框的选定索引更改事件,我有以下内容:
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;
}
它将表单移至我每个屏幕的左上角。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)