Método Shape.RectangleToScreen

Calcula o tamanho e local do retângulo cliente especificado em coordenadas de tela.

Namespace:  Microsoft.VisualBasic.PowerPacks
Assembly:  Microsoft.VisualBasic.PowerPacks.Vs (em Microsoft.VisualBasic.PowerPacks.Vs.dll)

Sintaxe

'Declaração
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

Parâmetros

Valor de retorno

Tipo: System.Drawing.Rectangle
A Rectangle que representa o convertido Rectangle, p, em coordenadas de tela.

Comentários

Algumas propriedades e métodos express coordenadas relativas ao canto superior esquerdo da tela. outras pessoas expressam-las em relação ao formulário clientes.O RectangleToClient e RectangleToScreen métodos podem ser usados para converter entre os dois.

Exemplos

O exemplo a seguir demonstra como usar o PointToScreen e RectangleToScreen métodos para alterar a cor de um RectangleShape quando uma operação de arrastar termina sua área de cliente.Este exemplo requer que você tenha um RectangleShape controle denominado RectangleShape1 em um formulário e que seu BackStyle propriedade estiver definida como 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);
}

Segurança do .NET Framework

Consulte também

Referência

Shape Classe

Namespace Microsoft.VisualBasic.PowerPacks

Outros recursos

Como: desenhar linhas com o controle de LineShape (Visual Studio)

Como: desenhar formas com os controles de RectangleShape (Visual Studio) e o OvalShape

Introdução à linha e controles Shape (Visual Studio)