# Rectangle.Intersect Method

## Definition

Determines the Rectangle structure that represents the intersection of two rectangles.

 Intersect(Rectangle, Rectangle) Returns a third Rectangle structure that represents the intersection of two other Rectangle structures. If there is no intersection, an empty Rectangle is returned. Intersect(Rectangle) Replaces this Rectangle with the intersection of itself and the specified Rectangle.

## Intersect(Rectangle, Rectangle)

Returns a third Rectangle structure that represents the intersection of two other Rectangle structures. If there is no intersection, an empty Rectangle is returned.

``````public:
static System::Drawing::Rectangle Intersect(System::Drawing::Rectangle a, System::Drawing::Rectangle b);``````
``public static System.Drawing.Rectangle Intersect (System.Drawing.Rectangle a, System.Drawing.Rectangle b);``
``static member Intersect : System.Drawing.Rectangle * System.Drawing.Rectangle -> System.Drawing.Rectangle``
``Public Shared Function Intersect (a As Rectangle, b As Rectangle) As Rectangle``

#### Parameters

a
Rectangle

A rectangle to intersect.

b
Rectangle

A rectangle to intersect.

#### Returns

A Rectangle that represents the intersection of `a` and `b`.

### Examples

The following code example demonstrates the Intersect, IsEmpty and the IntersectsWith members. This example should be used with a Windows Form. Paste this code into a form and call this method when handling the form's Paint event, passing `e` as PaintEventArgs.

``````private:
void StaticRectangleIntersection( PaintEventArgs^ e )
{
Rectangle rectangle1 = Rectangle(50,50,200,100);
Rectangle rectangle2 = Rectangle(70,20,100,200);
e->Graphics->DrawRectangle( Pens::Black, rectangle1 );
e->Graphics->DrawRectangle( Pens::Red, rectangle2 );
if ( rectangle1.IntersectsWith( rectangle2 ) )
{
Rectangle rectangle3 = Rectangle::Intersect( rectangle1, rectangle2 );
if (  !rectangle3.IsEmpty )
{
e->Graphics->FillRectangle( Brushes::Green, rectangle3 );
}
}
}
``````
``````private void StaticRectangleIntersection(PaintEventArgs e)
{
Rectangle rectangle1 = new Rectangle(50, 50, 200, 100);
Rectangle rectangle2 = new Rectangle(70, 20, 100, 200);
Rectangle rectangle3 = new Rectangle();

e.Graphics.DrawRectangle(Pens.Black, rectangle1);
e.Graphics.DrawRectangle(Pens.Red, rectangle2);

if (rectangle1.IntersectsWith(rectangle2))
{
rectangle3 = Rectangle.Intersect(rectangle1, rectangle2);
if (!rectangle3.IsEmpty)
{
e.Graphics.FillRectangle(Brushes.Green, rectangle3);
}
}
}
``````
``````Private Sub StaticRectangleIntersection(ByVal e As PaintEventArgs)
Dim rectangle1 As New Rectangle(50, 50, 200, 100)
Dim rectangle2 As New Rectangle(70, 20, 100, 200)
Dim rectangle3 As New Rectangle

e.Graphics.DrawRectangle(Pens.Black, rectangle1)
e.Graphics.DrawRectangle(Pens.Red, rectangle2)

If (rectangle1.IntersectsWith(rectangle2)) Then
rectangle3 = Rectangle.Intersect(rectangle1, rectangle2)
If Not rectangle3.IsEmpty Then
e.Graphics.FillRectangle(Brushes.Green, rectangle3)
End If
End If
End Sub
``````

## Intersect(Rectangle)

Replaces this Rectangle with the intersection of itself and the specified Rectangle.

``````public:
void Intersect(System::Drawing::Rectangle rect);``````
``public void Intersect (System.Drawing.Rectangle rect);``
``member this.Intersect : System.Drawing.Rectangle -> unit``
``Public Sub Intersect (rect As Rectangle)``

#### Parameters

rect
Rectangle

The Rectangle with which to intersect.

### Examples

The following code example demonstrates the Intersect, IsEmpty and the IntersectsWith members. This example should be used with a Windows Form. Paste this code into a form and call this method when handling the form's Paint event, passing `e` as PaintEventArgs.

``````private:
void InstanceRectangleIntersection( PaintEventArgs^ e )
{
Rectangle rectangle1 = Rectangle(50,50,200,100);
Rectangle rectangle2 = Rectangle(70,20,100,200);
e->Graphics->DrawRectangle( Pens::Black, rectangle1 );
e->Graphics->DrawRectangle( Pens::Red, rectangle2 );
if ( rectangle1.IntersectsWith( rectangle2 ) )
{
rectangle1.Intersect( rectangle2 );
if (  !rectangle1.IsEmpty )
{
e->Graphics->FillRectangle( Brushes::Green, rectangle1 );
}
}
}
``````
``````private void InstanceRectangleIntersection(PaintEventArgs e)
{

Rectangle rectangle1 = new Rectangle(50, 50, 200, 100);
Rectangle rectangle2 = new Rectangle(70, 20, 100, 200);

e.Graphics.DrawRectangle(Pens.Black, rectangle1);
e.Graphics.DrawRectangle(Pens.Red, rectangle2);

if (rectangle1.IntersectsWith(rectangle2))
{
rectangle1.Intersect(rectangle2);
if (!rectangle1.IsEmpty)
{
e.Graphics.FillRectangle(Brushes.Green, rectangle1);
}
}
}
``````
``````  Private Sub InstanceRectangleIntersection( _
ByVal e As PaintEventArgs)

Dim rectangle1 As New Rectangle(50, 50, 200, 100)
Dim rectangle2 As New Rectangle(70, 20, 100, 200)

e.Graphics.DrawRectangle(Pens.Black, rectangle1)
e.Graphics.DrawRectangle(Pens.Red, rectangle2)

If (rectangle1.IntersectsWith(rectangle2)) Then
rectangle1.Intersect(rectangle2)
If Not (rectangle1.IsEmpty) Then
e.Graphics.FillRectangle(Brushes.Green, rectangle1)
End If
End If
End Sub
``````