我正在编写一个需要两个显示器的应用程序:一个用于控制面板,另一个用于输出。我有这个:如果只有一个显示器,应用程序会在上面显示两个表单,但如果有两个,输出表单会转到另一个。问题是这只会在应用程序启动时发生。换句话说,如果在连接第二显示器之前应用程序已经在运行,则除非用户手动将输出发送到新显示器(假设他们知道如何进行),否则不会发生任何事情。我想要的是,当连接一个新的显示器时,即使在应用程序运行的同时,输出表单也会自动发送给它。我认为这与轮询线程中的端口有关,但我不知道如何做到这一点。有人能帮我怎么做吗?如果有更好的解决方案,我会很高兴地欢迎它。
(我本可以提供部分代码,但我是从手机上输入的)
3条答案
按热度按时间iqjalb3h1#
看这里:http://msdn.microsoft.com/en-us/library/system.windows.forms.control.wndproc.aspx
有一个例子可以帮助你。试试这样的东西:
2cmtqfgy2#
可以使用
WndProc
和Screen.AllScreens.Length
:WndProc
:https://msdn.microsoft.com/en-us/library/system.windows.forms.control.wndproc.aspxScreen.AllScreens
:https://msdn.microsoft.com/en-US/library/system.windows.forms.screen.allscreens(v=vs.110).aspxuqcuzwp83#
您可以包括一个计时器,用于检查例如如果屏幕数量多于一个,则每2秒显示一次。代码可能如下所示:
对于C#的初学者来说,它很容易使用。