c#获取屏幕分辨率信息
转自:http://blog.sina.com.cn/s/blog_4c83c6bf010008zj.html
引用:http://technet.microsoft.com/zh-cn/magazine/system.windows.forms.screen.primaryscreen(VS.80).aspx
http://msdn.microsoft.com/zh-cn/library/vstudio/system.windows.forms.screen.aspx
这个程序只包含一个窗体,窗体中有一组文本框,文件框的内容是在窗体加载时准备好的。文本框用来显示设备名称、屏幕边界、设备是否是主显示器、显示器的工作区、以及与当前显示器设置关联的像素位值。
具体实现步骤:
2. 设置窗体Form1的(Name)属性为“frmMain”,Text属性为“屏幕信息”。
4. 向窗体中拖放5个Label控件,设置其Text属性分别为“设备名称:”、“设备边界:”、“是否主设备:”、“工作区:”、“每象素位数:”。
5. 再向窗体中拖放5个TextBox控件,设置其(Name)属性分别为:txtName、txtBounds、txtType、txtWorkArea、txtBitsPerPixel。
6. 再向窗体中添加一个Button控件,设置其(Name)属性为“btnOK”,Text属性为“确定”。
调整窗体和各个控件的大小及位置,以适合窗口。
关于屏幕的信息是通过使用System.Windows.Forms.Screen类获取的。Screen类表示单个系统上的一个或多个显示设备,常用的属性有:
对于单显示系统来说,主显示是唯一的显示设备。
· Bounds 属性:获取屏幕的边界。属性值是一个Rectangle结构的值。
· DeviceName 属性:获取与显示关联的设备名称。
· Primary 属性:获取一个值,该值指示某个显示是否为主设备。
如果此显示是主显示,则为 true;否则为 false。
· WorkingArea 属性:获取显示器的工作区。
属性值是一个Rectangle结构的值。工作区是显示器的桌面区域,不包括任务栏、停靠窗口和停靠工具栏。
· BitsPerPixel 属性:获取与数据的一个像素相关联的内存位数。
在处理位图时,屏幕的每个像素的位数很有用。
代码非常简单,如下所示:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace ScreenInfo
{
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}
private void frmMain_Load(object sender, EventArgs e)
{
System.Windows.Forms.Screen scr = System.Windows.Forms.Screen.PrimaryScreen;
txtBitsPerPixel.Text = scr.BitsPerPixel.ToString();
txtBounds.Text = scr.Bounds.ToString();
txtName.Text = scr.DeviceName.ToString();
txtType.Text = scr.Primary.ToString();
txtWorkArea.Text = scr.WorkingArea.ToString();
}
private void btnOK_Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}
当窗体加载时,会创建System.Windows.Forms.Screen类的一个实例作为主屏幕。Screen对象创建后,其属性值用来设置窗体中文本框中显示的值。