Partager via


Shape.RectangleToScreen, méthode

Calcule la taille et l'emplacement du rectangle client spécifié en coordonnées d'écran.

Espace de noms :  Microsoft.VisualBasic.PowerPacks
Assembly :  Microsoft.VisualBasic.PowerPacks.Vs (dans Microsoft.VisualBasic.PowerPacks.Vs.dll)

Syntaxe

'Déclaration
Public Function RectangleToScreen ( _
    rect As Rectangle _
) As Rectangle
public Rectangle RectangleToScreen(
    Rectangle rect
)
public:
Rectangle RectangleToScreen(
    Rectangle rect
)
member RectangleToScreen : 
        rect:Rectangle -> Rectangle
public function RectangleToScreen(
    rect : Rectangle
) : Rectangle

Paramètres

  • rect
    Type : Rectangle

    Coordonnée d'écran Rectangle à convertir.

Valeur de retour

Type : Rectangle
Rectangle qui représente le Rectangle converti, p, en coordonnées d'écran.

Notes

Certaines propriétés et méthodes express coordonnées par rapport au coin supérieur gauche de l'écran ; d'autres les expriment par rapport à l'écran client. Le RectangleToClient et RectangleToScreen méthodes peuvent être utilisées pour la conversion entre les deux.

Exemples

L'exemple suivant montre comment utiliser le PointToScreen et RectangleToScreen méthodes pour modifier la couleur d'un RectangleShape lorsqu'une opération glisser se termine sur sa zone cliente. Cet exemple suppose que vous disposez d'un RectangleShape RectangleShape1 contrôle sur un formulaire et que sa BackStyle est définie sur Opaque.

Public isDrag As Boolean = True 
Public theRectangle As System.Drawing.Rectangle

Private Sub Form1_MouseMove(
    ByVal sender As Object, 
    ByVal e As System.Windows.Forms.MouseEventArgs
  ) Handles RectangleShape1.MouseMove

    ' If the mouse is being dragged, undraw and redraw the rectangle 
    ' while the mouse moves. 
    If (isDrag) Then 

        ' Hide the previous rectangle by calling the 
        ' DrawReversibleFrame method, using the same parameters.
        ControlPaint.DrawReversibleFrame(theRectangle, Me.BackColor, 
          FrameStyle.Dashed)

        ' Calculate the endpoint and dimensions for the new rectangle,  
        ' again by using the PointToScreen method. 
        Dim startPoint As Point = New Point(RectangleShape1.Width, 
         RectangleShape1.Height)
        Dim endPoint As Point = RectangleShape1.PointToScreen(New Point(e.X, e.Y))
        Dim width As Integer = endPoint.X - startPoint.X
        Dim height As Integer = endPoint.Y - startPoint.Y
        theRectangle = New Rectangle(startPoint.X, startPoint.Y, 
         width, height)

        ' Draw the new rectangle by calling DrawReversibleFrame again.  
        ControlPaint.DrawReversibleFrame(theRectangle, Me.BackColor, 
          FrameStyle.Dashed)
    End If 
End Sub 

Private Sub Form1_MouseUp() Handles RectangleShape1.MouseUp

    ' If the MouseUp event occurs, the user is not dragging.
    isDrag = False 
    ' Draw the rectangle to be evaluated. Set a dashed frame style  
    ' by using the FrameStyle enumeration.
    ControlPaint.DrawReversibleFrame(theRectangle, Me.BackColor, 
      FrameStyle.Dashed)
    ' Find out which controls intersect the rectangle, and change 
    ' their colors. 
    ' The method uses the RectangleToScreen method to convert the  
    ' control's client coordinates to screen coordinates. 
    Dim controlRectangle As Rectangle

    controlRectangle = RectangleShape1.RectangleToScreen(
       RectangleShape1.ClientRectangle)
    If controlRectangle.IntersectsWith(theRectangle) Then
        RectangleShape1.BackColor = Color.BurlyWood
    End If 

    ' Reset the rectangle.
    theRectangle = New Rectangle(0, 0, 0, 0)
End Sub
public bool isDrag = true;
public System.Drawing.Rectangle theRectangle;

private void Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{

    // If the mouse is being dragged, undraw and redraw the rectangle 
    // while the mouse moves. 
    if (isDrag)

    // Hide the previous rectangle by calling the 
    // DrawReversibleFrame method, using the same parameters.
    {
        ControlPaint.DrawReversibleFrame(theRectangle, this.BackColor, FrameStyle.Dashed);

        // Calculate the endpoint and dimensions for the new rectangle,  
        // again by using the PointToScreen method.
        Point startPoint = new Point(rectangleShape1.Width, rectangleShape1.Height);
        Point endPoint = rectangleShape1.PointToScreen(new Point(e.X, e.Y));
        int width = endPoint.X - startPoint.X;
        int height = endPoint.Y - startPoint.Y;
        theRectangle = new Rectangle(startPoint.X, startPoint.Y, width, height);

        // Draw the new rectangle by calling DrawReversibleFrame again.  
        ControlPaint.DrawReversibleFrame(theRectangle, this.BackColor, FrameStyle.Dashed);
    }
}

private void Form1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{

    // If the MouseUp event occurs, the user is not dragging.
    isDrag = false;
    // Draw the rectangle to be evaluated. Set a dashed frame style  
    // by using the FrameStyle enumeration.
    ControlPaint.DrawReversibleFrame(theRectangle, this.BackColor, FrameStyle.Dashed);
    // Find out which controls intersect the rectangle, and change 
    // their colors. 
    // The method uses the RectangleToScreen method to convert the  
    // control's client coordinates to screen coordinates.
    Rectangle controlRectangle;

    controlRectangle = rectangleShape1.RectangleToScreen(rectangleShape1.ClientRectangle);
    if (controlRectangle.IntersectsWith(theRectangle))
    {
        rectangleShape1.BackColor = Color.BurlyWood;
    }

    // Reset the rectangle.
    theRectangle = new Rectangle(0, 0, 0, 0);
}

Sécurité .NET Framework

Voir aussi

Référence

Shape Classe

Microsoft.VisualBasic.PowerPacks, espace de noms

Autres ressources

Comment : dessiner des lignes avec le contrôle LineShape (Visual Studio)

Comment : dessiner des formes avec les contrôles OvalShape et RectangleShape (Visual Studio)

Introduction aux contrôles Line et Shape (Visual Studio)