This value type represents a point in a 2D coordinate system. It uses integers to define the X and Y coordinates of that point. A point has no size in and of itself, but on a pixel-based device context, the pixels are of finite size. The point {0,0} is therefore located at the center of the pixel (0,0). You can compare a point to another point using the standard equality operator, and add or subtract Size quantities from it. There is a conversion operator from Point to Size if required. The PointF class is equivalent to Point but uses real values instead of integers. You can convert from PointF to Point using the Round() , Truncate( ) , and Ceiling() members to control the loss of precision. To go the other way, there is a conversion operator from Point to PointF . It also provides an Empty property to represent a null point. public struct Point { // Public Constructors public Point (int dw ); public Point (int x , int y ); public Point (Size sz ); // Public Static Fields public static readonly Point Empty ; // = {X=0,Y=0} // Public Instance Properties public bool IsEmpty {get; } public int X {set; get; } public int Y {set; get; } // Public Static Methods public static Point Ceiling (PointF value ); public static Point Round (PointF value ); public static Point Truncate (PointF value ); public static Point operator - (Point pt , Size sz ); public static Point operator + (Point pt , Size sz ); public static bool operator != (Point left , Point right ); public static bool operator == (Point left , Point right ); public static explicit operator Size (Point p ); public static implicit operator PointF (Point p ); // Public Instance Methods public override bool Equals (object obj ); // overrides ValueType public override int GetHashCode (); // overrides ValueType public void Offset (int dx , int dy ); public override string ToString (); // overrides ValueType } HierarchySystem.Object System.ValueType Point Returned ByMultiple types Passed ToMultiple types |