【发布时间】:2013-04-30 07:59:33
【问题描述】:
我在我的操作系统中使用双视图设置(1 个视图扩展到 2 个屏幕)。在我的 winforms 应用程序中,我可以将特定窗口移动到辅助屏幕,例如:
foreach (Screen s in Screen.AllScreens)
{
if (!s.Primary) {
myform.Bounds = s.Bounds;
break;
}
}
一切都很好,当我可以看到这个辅助屏幕时。如果我看到它,我可以使用此类窗口窗体提供的任何功能,例如我可以通过点击相应的按钮来关闭它。
但是如果我看不到这个辅助屏幕怎么办,例如这是显示在另一个房间墙上的投影图像?那时我不能使用我被遗弃的形式。如何应对这种不舒服的情况(不能搬到同一个房间)?
我想要的是在我的主屏幕和辅助屏幕上都显示这种形式的精确副本。我真的很想拥有同一个窗口的多个实例,精确副本,其中一个实例反映另一个实例的更改,反之亦然。我可以使用放置在远程位置的主屏幕来控制辅助屏幕(对一些弹出信息等做出反应)。我不知道如何使用winforms在.Net中实现这样的东西。怎么办?
顺便说一句:如果这很难实现,从概念的角度可以做什么?我知道我可以定义一些键盘快捷键,但这不是我想要的。有什么想法吗?
【问题讨论】:
-
一个窗口有一个句柄。复制该句柄(及其包含的所有句柄)将是有问题的。相反,如何创建一个显示在主屏幕上的“元”窗口列表,其中包含指向看不见的屏幕上的表单的链接。这样您就可以通过元应用程序向它发送命令来控制它。
-
我认为使用 Windows 显示设置来“复制”显示 (microsoft.com/athome/organization/…) 是不可能的,对吧?
-
@Michael Todd:很好的建议,如果您有类似方法的更多信息,我将不胜感激。
-
@scott:对,这里超出了范围。
标签: c# .net winforms multiple-monitors