【问题标题】:Move Form onto specified Screen将表格移动到特定屏幕
【发布时间】:2012-01-15 06:04:03
【问题描述】:

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

我的笔记本电脑只有一个屏幕,没有外接显示器,所以我电脑上的 ComboBox 只提供一种选择。我认为最小化所需的窗口,将它的左角移动到选定屏幕边界的中心并最大化就可以了,对吧?我只是无法测试它。这是一个好方法吗?

提前致谢!

【问题讨论】:

标签: c# .net winforms window screen


【解决方案1】:

这就是我所做的,作为一个简单的测试......

我添加了一个简单的包装类,以便我可以更改 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;
}

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

【讨论】:

    猜你喜欢
    • 2013-05-15
    • 2023-01-01
    • 2018-04-10
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    相关资源
    最近更新 更多