【问题标题】:Programming for multiple monitors [closed]多显示器编程[关闭]
【发布时间】:2012-03-13 08:50:04
【问题描述】:

我目前在某家公司担任初级顾问,尝试制作一个可以同时在树形屏幕上运行的应用程序是否有人知道从哪里开始这样的事情,也许设计模式或一些很棒的库。 任何帮助都会很棒。

  • 跨树形监视器运行的单个运行应用程序将负责一个或多个窗体。

  • 现在在技术分析什么地方

【问题讨论】:

  • 这取决于你想用那个显示器做什么!只是把窗户放在那里?绘制全屏图形?
  • 我实际上很想知道如何在 XNA 上下文中执行此操作。有人有这方面的经验吗?
  • 3个表格还是1个超宽表格?

标签: .net multiple-monitors monitors


【解决方案1】:

其实很简单,你只需要设置表单的 Location 属性,让它显示在另一个显示器上。最好使用 Load() 事件,使用 Screen 类找出其他监视器的位置。例如:

    protected override void OnLoad(EventArgs e) {
        // Display on 2nd monitor, if available
        if (Screen.AllScreens.Length >= 2) {
            this.Location = Screen.AllScreens[1].WorkingArea.Location;
        }
        base.OnLoad(e);
    }

如果您打算在多个监视器上显示 一个 窗口(从问题中不清楚):不,Winforms 不会让您这样做。 Raymond Chen 最近blogged about 引起的那种麻烦。

【讨论】:

  • 从 Raymond Chen 的博客文章中,听起来这是可能的,只是不是标准的 Windows 行为。很公平,但是,任何人都知道如何去做。当我尝试将表单的 SIZE 设置为大于我放置它的屏幕时,它会立即捕捉到单个屏幕的大小。
  • 是的,Raymond 引导 Winforms 的行为而没有写博客。
  • 很奇怪,但看起来这种行为与在 VS IDE 中有关。当我在 IDE 中运行应用程序时,表单大小基本上会与 IDE 所在的屏幕大小对齐。但是当我自己编译运行exe时,窗体可以任意大,甚至可以跨越整个虚拟屏幕。哦,好吧,至少现在我知道了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-29
  • 1970-01-01
相关资源
最近更新 更多