DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

ディスプレイの大きさ(画面の領域、解像度)を取得する

広告

プライマリディスプレイの大きさを取得する

ディスプレイが一台のとき(あるいはプライマリディスプレイを対象とするとき)はScreen.PrimaryScreenプロパティにより、ディスプレイの大きさ(範囲、領域)をピクセル単位で取得できます。

[VB.NET]
Dim h, w As Integer
'ディスプレイの高さ
h = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height
'ディスプレイの幅
w = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width

'結果表示
Console.WriteLine("ディスプレイの高さ:{0}ピクセル", h)
Console.WriteLine("ディスプレイの幅:{0}ピクセル", w)
[C#]
int h, w;
//ディスプレイの高さ
h = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height;
//ディスプレイの幅
w = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width;

//結果表示
Console.WriteLine("ディスプレイの高さ:{0}ピクセル", h);
Console.WriteLine("ディスプレイの幅:{0}ピクセル", w);

補足:.NET Framework 2.0以降のVB.NETでは、My.Computer.ScreenプロパティでSystem.Windows.Forms.Screen.PrimaryScreenと同じことができます。

なおすべてのディスプレイは、Screen.AllScreensプロパティにより取得できます。

フォームのあるディスプレイの大きさを取得する

Windowsアプリケーションで、指定したフォームが現在あるディスプレイを対象とするときは、Screen.GetBoundsメソッドを使います。以下の例では、自分自身のフォームがあるディスプレイの大きさを取得しています。

[VB.NET]
Dim h, w As Integer
'ディスプレイの高さ
h = System.Windows.Forms.Screen.GetBounds(Me).Height
'ディスプレイの幅
w = System.Windows.Forms.Screen.GetBounds(Me).Width
[C#]
int h, w;
//ディスプレイの高さ
h = System.Windows.Forms.Screen.GetBounds(this).Height;
//ディスプレイの幅
w = System.Windows.Forms.Screen.GetBounds(this).Width;

ディスプレイの作業領域を取得する

ディスプレイの作業領域を取得するにはScreen.GetWorkingAreaメソッドを使います。作業領域とは、ヘルプによると、「ディスプレイのデスクトップ領域からタスクバー、ドッキングされたウィンドウ、およびドッキングされたツールバーを除いた部分です。」とのことです。

[VB.NET]
Dim h, w As Integer
'ディスプレイの作業領域の高さ
h = System.Windows.Forms.Screen.GetWorkingArea(Me).Height
'ディスプレイの作業領域の幅
w = System.Windows.Forms.Screen.GetWorkingArea(Me).Width
[C#]
int h, w;
//ディスプレイの作業領域の高さ
h = System.Windows.Forms.Screen.GetWorkingArea(this).Height;
//ディスプレイの作業領域の幅
w = System.Windows.Forms.Screen.GetWorkingArea(this).Width;
  • 履歴:
  • 2007/2/24 My.Computer.Screenプロパティに関する記述を追加。
  • 2009/8/9 「ディスプレイの作業領域を取得する」のVB.NETのコードで変数の宣言がC#になっていたのを修正。