【发布时间】:2014-12-30 21:24:37
【问题描述】:
我正在为一家汽车公司开发反馈系统。在计费台上,有一个双显示器设置:一个用于计费人员,一个用于提供反馈的客户。我需要在两个屏幕上复制一个 Windows 表单,作为镜像,以便计费人员可以看到客户给出的反馈。
我正在使用下面的代码在辅助屏幕上显示:
Screen[] sc;
Form f = new Form();
sc = Screen.AllScreens;
f.FormBorderStyle = FormBorderStyle.None;
f.Left = sc[1].Bounds.Left;
f.Top = sc[1].Bounds.Top;
f.Height = sc[1].Bounds.Height;
f.Width = sc[1].Bounds.Width;
f.StartPosition = FormStartPosition.Manual;
f.Show();
但是,它不会在主屏幕上镜像表单。我还提到了duplicate window 问题,但它会为同一个表单创建不同的实例,这不会反映 Windows 表单。如何在两个屏幕上镜像?
【问题讨论】:
-
为什么要投反对票?这似乎是一个真正的问题。
-
您希望辅助表单如何反映原始表单?在您的代码中,您只是打开一个表单(或者看起来,如果
f是一个表单),但那里根本没有任何代码可以反映原始表单。Color c = Color.Red;行让我感到困惑 -
f 是 Form 的对象。我在问如何镜像原始的,在上面的代码中我已经展示了我如何在辅助屏幕上打开表单。
-
对镜像的需求是一种非常奇怪的需求,而且不太可能是合适的。但是您需要编写 很多 更多的代码。迭代控件并更改 Location 属性。当客户修改其内容时,每个控件都需要通知其他表单。使用第二台显示器在硬件中执行此操作,只需显示与第一台显示器相同的内容,这是一个非常简单的解决方案。
-
@HansPassant 如果镜像表单不需要可编辑(问题说它只需要被看到),通过镜像位图也很简单,正如我在我的示例项目
标签: c# winforms screen mirroring multiple-monitors