c# Winform 开发分屏显示应用程序

原文 http://blog.csdn.net/soft2buy/article/details/7082668

分屏显示即可把一台主机内运行的多个程序分别显示在不同的两个(或多个)屏幕上。目前市面上主流的显卡都支持分屏显示(显示双屏幕),如果需要显示2个以上的屏幕,则应使用“拖机卡”类的硬件。

设置分屏显示的两种方法如下:

1、用两个显卡连接两台显示器,进入系统后,分清楚哪一个是主显卡,在桌面空白处右键单击,点属性,然后在窗口中点“设置”选项卡,会看到有两个显 示,分别是1(主显卡)和2(副显卡),点击那个2,在下面的“将windows桌面扩展到该监视器”打上对号,确定后,你试着把鼠标往主显示器右边界移 动,再移动,鼠标会跑到第二台显示器上去了,这样,同样运行几个程序,分别将它们的窗口拖拽到两个显示器的区域中就可以了,这实际上是将桌面扩展了一下。

2、使用专门的硬件。可以使用“一拖多”的拖机卡,只要将设备插入usb口中,将设备上引出的两个ps/2口分别接鼠标和键盘,主机中还是有两块显卡,然后再装上这个设备的专用软件,重启后,经过简单的配置,即可实现“完全”独立的两个系统。

 

所谓的分屏或多屏软件,就是把软件中的多个窗体,在主屏幕运行,但是把各个窗体(坐标)移动到各个扩展屏幕位置上如下图所示:

 

主屏幕
(MainForm)
index=0
扩展屏幕1
(Form1)
index=1
扩展屏幕2
(Form2)
index=...
扩展屏幕3
(Form3)
index=...

 

以下介绍最常用的双屏幕显示,也就是左右模式的屏幕显示的方法。

WinForm 的实现办法:

利用WinForm中的Screen类,即可比较方便地实现多窗体分别在多个屏幕上显示。

  • 获取当前系统连接的屏幕数量: Screen.AllScreens.Count();
  • 获取当前屏幕的名称:string CurrentScreenName = Screen.FromControl(this).DeviceName;
  • 获取当前屏幕对象:Screen CurrentScreen = Screen.FromControl(this);
  • 获取当前鼠标所在的屏幕:Screen CurrentScreen = Screen.FromPoint(new Point(Cursor.Position.X, Cursor.Position.Y));
  • 让窗体在第2个屏幕上显示:

     this.Left = ((Screen.AllScreens[1].Bounds.Width - this.Width) / 2);
     this.Top = ((Screen.AllScreens[1].Bounds.Height - this.Height) / 2);

把任何窗体显示在任何屏幕的方法:

[csharp] view plaincopy

  1. //在窗体的OnLoad事件中调用该方法  
  2. protected void Form1_OnLoad(...) {  
  3.     showOnMonitor(1);//index=1  
  4. }  
  5.   
  6. private void showOnMonitor(int showOnMonitor)   
  7. {   
  8.     Screen[] sc;   
  9.     sc = Screen.AllScreens;   
  10.     if (showOnMonitor >= sc.Length) {  
  11.         showOnMonitor = 0;  
  12.     }  
  13.   
  14.   
  15.     this.StartPosition = FormStartPosition.Manual;   
  16.     this.Location = new Point(sc[showOnMonitor].Bounds.Left, sc[showOnMonitor].Bounds.Top);  
  17.     // If you intend the form to be maximized, change it to normal then maximized.  
  18.     this.WindowState = FormWindowState.Normal;  
  19.     this.WindowState = FormWindowState.Maximized;  
  20. }  

对WPF窗体来说,只要简单的更改即可:

首先要添加对 System.Windows.Forms 和 System.Drawing 的引用

简单的参考代码如下:

[csharp] view plaincopy

  1. protected override void OnStartup(StartupEventArgs e)  
  2.         {  
  3.             base.OnStartup(e);  
  4.   
  5.             Window1 w1 = new Window1();  
  6.             Window2 w2 = new Window2();  
  7.   
  8.   
  9.             Screen s1 = Screen.AllScreens[0];  
  10.             Screen s2 = Screen.AllScreens[1];  
  11.   
  12.             Rectangle r1 = s1.WorkingArea;  
  13.             Rectangle r2 = s2.WorkingArea;  
  14.   
  15.             w1.Top = r1.Top;  
  16.             w1.Left = r1.Left;  
  17.   
  18.             w2.Top = r2.Top;  
  19.             w2.Left = r2.Left;  
  20.   
  21.             w1.Show();  
  22.             w2.Show();  
  23.   
  24.             w2.Owner = w1;  
  25.   
  26.   
  27.         }  

注意:一定应该在窗体加载前,判断所要显示的屏幕是否存在,否则会报错!

时间: 2025-01-17 00:42:27

c# Winform 开发分屏显示应用程序的相关文章

Windows 8 metro程序分屏显示技巧

  Windows 8 metro程序分屏显示技巧 据悉,Win8新增的分屏显示功能,能让某个Metro应用固定在屏幕左/右侧,相当于同时显示两个全屏程序(包括桌面).那么win8的程序分屏显示功能作为一个新生的事物,很多用户都不熟悉,该如何运用呢? 微软展示了 Windows 8 之一是功能的管理单元.微软,只有高分辨率的 Pc 上提供此功能. Windows 8 metro 程序分屏显示技巧 与一些注册表修改,您可以强制启用快照不受支持的机器上. 在开始屏幕上键入 regedit 并查找以下

eclipse开发-使用Eclipse开发的时候不知按错哪个键了出现编辑框分屏显示同一个代码...

问题描述 使用Eclipse开发的时候不知按错哪个键了出现编辑框分屏显示同一个代码... 解决方案 研究了很久,只找到多个文件分栏显示的方法,同一个文件还真是没有找到. 比较两个文件的功能和你的情况也不一样. 多文件分栏显示方法请参考:Eclipse 分栏同时显示多个文件的内容 解决方案二: 这个问题还真没遇到过.重新启动Eclipse还存在 这个情况? 解决方案三: 解决方案四: 已经解决是新版的eclipse才有的(我版本为luna)ctrl+shift+[或ctrl+shift+] 解决方

360浏览器分屏显示怎么开启

  打开浏览器打开一个网页(不是所有的网页都可以支持分屏显示的)下面以百度为例,此时浏览器右上角多出一个书本一样的图标 点击即可进入360浏览器分屏模式 然后点击左侧连接,就可以在右侧显示,还别说有些时候还真的挺好用的~

实现opencv图像裁剪分屏显示示例_C 语言

使用OPENCV图像处理库,将图片裁剪分屏显示 复制代码 代码如下: //#include "stdafx.h"#include <opencv2/opencv.hpp> //#include <opencv2/imgproc/imgproc.hpp>//#include <opencv2/highgui/highgui.hpp>#include <iostream>#include <vector>using namespa

Windows 8如何分屏显示两个Metro程序界面?

  1.运行一个 Metro 应用,例如:远程桌面(或者其他应用程序).如下图所示: 2.鼠标移动到左下角.如下图所示: 3.选择其他应用程序后-鼠标右键-选择贴靠到左侧或者右侧.如下图所示: 4.选择另一程序:贴靠左侧,实现效果图如下:

DOS系统里,分屏显示目录的命令是什么??

dir /sdir /pdir /w 我记得这三个都是我当年常用的命令,有分瓶的,有滚动时候每页停顿的,还有去掉详细信息的吧,, 可以放在一起使用.如dir /p/w /p是滚动时候中间停顿的,/w是显示简单信息的(好像只有文件名)/s是显示所有信息(包括隐藏目录和目录下的目录汗)

Win8系统分屏显示功能怎么使用

Win8系统分屏显示功能怎么使用 1.我们首先可以先打开一个全屏的Windows 8应用,比如"天气"; 2.按住键盘Windows+D组合键进入Windows桌面; 3.回到Windows 8传统桌面之后,我们把鼠标移动到屏幕的左边缘滑动鼠标(不一定是角落,边缘即可),此时屏幕左侧会出现一个全屏的应用程序缩略图,这时按住鼠标左键拖动这个缩略图到屏幕的右边缘,再释放就会发现系统已经自动分屏了. Windows 8.1 分屏 在Windows 8.1中,分屏功能比Windows 8有所改

Windows 8.1灵活丰富的分屏视图功能

  现在,Win8.1预览版提供了更为丰富灵活的"分屏视图(Snap Views)"功能,不仅支持低分辨率屏幕,而且分屏数量最多可达四个;系统即提供智能分屏调整,同时也支持手动调整分屏之间的面积比例,满足不同的应用需要. Win 8.1"分屏视图(Snap Views)"功能支持智能调整 Win 8.1的"分屏视图(Snap Views)"功能支持智能调整.如果我们在邮件应用中打开照片,Win8.1预览版会认为照片浏览需要更大的空间,直接将邮件应

怎样使用Win8分屏显示功能

Win8系统的分屏显示功能(Windows 8 Snap)想必大家有所耳闻,很多人觉得这个功能很赞.不过呢,微软要求至少 1366 * 768 的显示分辨率才能使用这功能.现在我们教大家如何强制开启这一功能. 强制开启Win8分屏显示功能的方法 操作方法 Win+r (运行) – 输入 regedit (注册表) – 找到 HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionImmersiveShellAppPositioner 新建立一