System.Windows.Forms


.NET Framework Class Library
Screen Class

Represents a display device or multiple display devices on a single system.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

Syntax

Visual Basic (Declaration)
Public Class Screen
Visual Basic (Usage)
Dim instance As Screen
C#
public class Screen
C++
public ref class Screen
J#
public class Screen
JScript
public class Screen
Remarks

The constructor for this object is not public, so you cannot explicitly create a Screen object. The object is created when you call its public methods.

Example

The following code example shows how to use various methods and properties of the Screen class. The example calls the AllScreens property to retrieve an array of all the screens connected to the system. For each returned Screen, the example adds the device name, bounds, type, working area, and primary screen to a ListBox.

Visual Basic
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnGetScreenInfo.Click

    Dim Index As Integer
    Dim UpperBound As Integer

    ' Gets an array of all the screens connected to the system.

    Dim Screens() As System.Windows.Forms.Screen = _
        System.Windows.Forms.Screen.AllScreens
    UpperBound = Screens.GetUpperBound(0)

    For Index = 0 To UpperBound

        ' For each screen, add the screen properties to a list box.

        ListBox1.Items.Add("Device Name: " + Screens(Index).DeviceName)
        ListBox1.Items.Add("Bounds: " + Screens(Index).Bounds.ToString())
        ListBox1.Items.Add("Type: " + Screens(Index).GetType().ToString())
        ListBox1.Items.Add("Working Area: " + Screens(Index).WorkingArea.ToString())
        ListBox1.Items.Add("Primary Screen: " + Screens(Index).Primary.ToString())

    Next



End Sub
C#
private void button1_Click(object sender, System.EventArgs e)
{
    int index;
    int upperBound; 

    // Gets an array of all the screens connected to the system.

    Screen [] screens = Screen.AllScreens;
    upperBound = screens.GetUpperBound(0);

    for(index = 0; index <= upperBound; index++)
    {

        // For each screen, add the screen properties to a list box.

        listBox1.Items.Add("Device Name: " + screens[index].DeviceName);
        listBox1.Items.Add("Bounds: " + screens[index].Bounds.ToString());
        listBox1.Items.Add("Type: " + screens[index].GetType().ToString());
        listBox1.Items.Add("Working Area: " + screens[index].WorkingArea.ToString());
        listBox1.Items.Add("Primary Screen: " + screens[index].Primary.ToString());

    }

}
C++
private:
   void button1_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      int index;
      int upperBound;

      // Gets an array of all the screens connected to the system.
      array<Screen^>^screens = Screen::AllScreens;
      upperBound = screens->GetUpperBound( 0 );
      for ( index = 0; index <= upperBound; index++ )
      {
         // For each screen, add the screen properties to a list box.
         listBox1->Items->Add( String::Concat( "Device Name: ", screens[ index ]->DeviceName ) );
         listBox1->Items->Add( String::Concat( "Bounds: ", screens[ index ]->Bounds ) );
         listBox1->Items->Add( String::Concat( "Type: ", screens[ index ]->GetType() ) );
         listBox1->Items->Add( String::Concat( "Working Area: ", screens[ index ]->WorkingArea ) );
         listBox1->Items->Add( String::Concat( "Primary Screen: ", screens[ index ]->Primary ) );
      }
   }
J#
private void button1_Click(Object sender, System.EventArgs e)
{
    int index;
    int upperBound;
    // Gets an array of all the screens connected to the system.
    Screen screens[] = Screen.get_AllScreens();
    upperBound = screens.GetUpperBound(0);

    for (index = 0; index <= upperBound; index++) {
        // For each screen, add the screen properties to a list box.
        listBox1.get_Items().Add("Device Name: " + screens[index].
            get_DeviceName());
        listBox1.get_Items().Add("Bounds: " + screens[index].get_Bounds()
            .ToString());
        listBox1.get_Items().Add("Type: " + screens[index].GetType().
            ToString());
        listBox1.get_Items().Add("Working Area: " + screens[index].
            get_WorkingArea().ToString());
        listBox1.get_Items().Add("Primary Screen: " + 
            ((System.Boolean)screens[index].get_Primary()).ToString());
    }
} //button1_Click
Inheritance Hierarchy

System.Object
  System.Windows.Forms.Screen
Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Platforms

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

Version Information

.NET Framework

Supported in: 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0
See Also

Tags :


Community Content

Adam Vandenberg
Example simplification
Getting the upperbound of the first index of the screens array is rather wonky.

Why not loop while index <= screens.Length, or better yet:
foreach(Screen aScreen in screens){...}
Tags :

Page view tracker