OSFeature.IsPresent Method (SystemParameter)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Retrieves a value indicating whether the operating system supports the specified feature or metric.

Namespace:   System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

public static bool IsPresent(
	SystemParameter enumVal


Type: System.Windows.Forms.SystemParameter

A SystemParameter representing the feature to search for.

Return Value

Type: System.Boolean

true if the feature is available on the system; otherwise, false.

Typically, you use the IsPresent method to determine if the operating system supports the specific feature or metric identified by enumValue. Based upon the value returned from IsPresent, you would perform conditional actions in your code. For example, if calling this method with a parameter value of FlatMenu returns true, you could create owner-drawn menus in your application in a flat style.

Accessing some system features or metrics can raise exceptions if they are not available on a specific operating system version. In this case, first use the corresponding SystemParameter enumeration value, along with IsPresent, to determine if the metric is supported. For example, call IsPresent with CaretWidth before getting the SystemInformation.CaretWidth property value.

The following code example demonstrates how to use the IsPresent method with the SystemParameter enumeration. The example determines if the operating system supports the CaretWidth metric before calling the SystemInformation.CaretWidth property.

using System;
using System.Drawing;
using System.ComponentModel;
using System.Windows.Forms;
// Gets the caret width based upon the operating system or default value.
private int GetCaretWidth ()

    // Check to see if the operating system supports the caret width metric. 
    if (OSFeature.IsPresent(SystemParameter.CaretWidthMetric))

        // If the operating system supports this metric,
        // return the value for the caret width metric. 

        return SystemInformation.CaretWidth;
    } else

        // If the operating system does not support this metric,
        // return a custom default value for the caret width.

        return 1;

.NET Framework
Available since 2.0
Return to top