c# Winform 开发分屏显示应用程序
分屏显示即可把一台主机内运行的多个程序分别显示在不同的两个(或多个)屏幕上。目前市面上主流的显卡都支持分屏显示(显示双屏幕),如果需要显示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.Top = ((Screen.AllScreens[1].Bounds.Height - this.Height) / 2);
- //在窗体的OnLoad事件中调用该方法
- protected void Form1_OnLoad(...) {
- showOnMonitor(1);//index=1
- }
- private void showOnMonitor(int showOnMonitor)
- {
- Screen[] sc;
- sc = Screen.AllScreens;
- if (showOnMonitor >= sc.Length) {
- showOnMonitor = 0;
- }
- this.StartPosition = FormStartPosition.Manual;
- this.Location = new Point(sc[showOnMonitor].Bounds.Left, sc[showOnMonitor].Bounds.Top);
- // If you intend the form to be maximized, change it to normal then maximized.
- this.WindowState = FormWindowState.Normal;
- this.WindowState = FormWindowState.Maximized;
- }
对WPF窗体来说,只要简单的更改即可:
- protected override void OnStartup(StartupEventArgs e)
- {
- base.OnStartup(e);
- Window1 w1 = new Window1();
- Window2 w2 = new Window2();
- Screen s1 = Screen.AllScreens[0];
- Screen s2 = Screen.AllScreens[1];
- Rectangle r1 = s1.WorkingArea;
- Rectangle r2 = s2.WorkingArea;
- w1.Top = r1.Top;
- w1.Left = r1.Left;
- w2.Top = r2.Top;
- w2.Left = r2.Left;
- w1.Show();
- w2.Show();
- w2.Owner = w1;
- }
c# Winform 开发分屏显示应用程序的更多相关文章
- wpf 制作播放视频的屏保程序、而且能分屏显示
这个程序用到了WPF里 “visual_Brush”(主要是为了实现分屏显示) , “UserControl” ,这两个知识点: 在屏保状态下播放指定文件夹下的视频,而且能分屏显示: 把编译好的屏保 ...
- Windows 窗体的自适应分辨率、分屏显示、开机自启动
前言 这里所说的针对Winform.WPF 都适用.开机自启动对于控制台的也可以. 还是从项目实践中得来的,在这里记录下来. 对于自适应.分屏显示,在以前感觉应该比较高大上的问题,会比较难.在经过这次 ...
- Eclipse 分屏显示同一个代码文件
描述: 今天在使用Eclipse开发的时候不知按错哪个键,出现编辑框分屏显示同一个代码,由于之前没有使用过这一功能,所以就去查了一下,原来是Eclipse的分屏功能. 快捷键: 方式一:Window ...
- vim 分屏显示
我用vim打开一个文件后,想同时打开另一个文件,就像windows中打开两个记事本一样,因此需要分屏显示 首先用vim打开一个文件 vim file1 输入命令[Esc] :sp file2 分屏打开 ...
- 转: Eclipse 分屏显示同一个文件
Eclipse 分屏显示同一个文件 场景 : 某个类很大,可能有数千行.当你想要将类开头部分与中间或者靠后的部分进行对比时,请follow如下步骤: Window -> Editor -&g ...
- c# 远程监控(4) 接收端 RTP包重组 分屏显示
我们在上一期使用RTP协议,并进行了配置,打包了视频数据,这一期我们就对发送的数据进行重组,并显示在接受端上.最后对其进行扩展,支持多客户端视频发送,并在接收端分屏显示.完成远程监控的模拟. 先来个效 ...
- (转载)mysql分屏显示结果
(转载)http://blog.csdn.net/wylkeke/article/details/7280645 linux机器: 在mysql命令行输入pager more就可以分屏显示结果了,取消 ...
- linux下信息分屏显示
在字符界面下,经常遇到ls之后信息太长,只能看到最后一页的信息,这时就需要分屏显示了. 常用: ls | less 这样就可以分屏显示了,并可以用PgUp和PgDn来上下翻页. 也可以用: ls | ...
- cat 显示文本、less 分屏显示文本、more 分页显示文件、head 显示文件的前面的内容、cut 切割、paste合并、wc用来对文本进行统计、sort排序、权限、关闭文件、vim的使用
cat 显示文本 -E 显示结尾的$符 -n 对显示的每一行进行编号 -b 对非空行进行编号 -s 对连续的空行进行压缩 tac 倒序显示 less 分屏显示文本 向下翻一屏 空格 向下翻一行 回车 ...
随机推荐
- apache poi导出excel报表
Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能.POI为"P ...
- Codeforces Round #283 Div.2 D Tennis Game --二分
题意: 两个人比赛,给出比赛序列,如果为1,说明这场1赢,为2则2赢,假如谁先赢 t 盘谁就胜这一轮,谁先赢 s 轮则赢得整个比赛.求有多少种 t 和 s 的分配方案并输出t,s. 解法: 因为要知道 ...
- USACO(含training section)水题合集[5/未完待续]
(1) USACO2.1 Ordered Fractions 枚举 排序即可,注意1/1 #include<iostream> #include<cstdio> #includ ...
- AC日记——紧急措施 openjudge 1.7 22
22:紧急措施 总时间限制: 1000ms 内存限制: 65536kB 描述 近日,一些热门网站遭受黑客入侵,这些网站的账号.密码及email的数据惨遭泄露.你在这些网站上注册若干账号(使用的用户 ...
- 一行命令搞定node.js 版本升级
from:http://www.16boke.com/article/detail/26 今天,又发现一个超级简单的升级node.js的方法.一行命令搞定,省去了重新编译安装的过程. node有一个模 ...
- PAT 1025. 反转链表 (25)
给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转.例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4:如果K为4,则输出应该为4→3→2→1→5→6,即最后 ...
- Camera.Parameters 参数
public class Camera.Parameters extends Object java.lang.Object ↳ android.hardware.Camera.Paramete ...
- Jump Game 的三种思路 - leetcode 55. Jump Game
Jump Game 是一道有意思的题目.题意很简单,给你一个数组,数组的每个元素表示你能前进的最大步数,最开始时你在第一个元素所在的位置,之后你可以前进,问能不能到达最后一个元素位置. 比如: A = ...
- 用 canvas 做个好玩的网站背景
不知不觉又好久没更过博客了,老调新弹一下,之前做的一个小效果,觉得蛮有意思的,也有朋友问是怎么做的,就分享一下,写个博文吧. 先上demo吧:http://whxaxes.github.io/canv ...
- php中的循环遍历 foreach list each
foreach语句遍历数组foreach语句用于循环遍历数组,每进行一次循环,当前数组元素的值就会被赋值给变量value(也可以是其它变量),数组指针会逐一的移动. 代码示例: foreach($ar ...