Método Shape.PointToScreen
Calcula o local do ponto de cliente especificado em coordenadas da tela.
Namespace: Microsoft.VisualBasic.PowerPacks
Assembly: Microsoft.VisualBasic.PowerPacks.Vs (em Microsoft.VisualBasic.PowerPacks.Vs.dll)
Sintaxe
'Declaração
Public Function PointToScreen ( _
position As Point _
) As Point
public Point PointToScreen(
Point position
)
public:
Point PointToScreen(
Point position
)
member PointToScreen :
position:Point -> Point
public function PointToScreen(
position : Point
) : Point
Parâmetros
- position
Tipo: Point
Valor de retorno
Tipo: Point
Um Point que representa o objeto Point, p, em coordenadas de tela.
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 em sua área cliente. Este exemplo requer que você tenha um RectangleShape controle denominado RectangleShape1 em um formulário e que seu BackStyle propriedade ser 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
- Confiança total para o chamador imediato. O membro não pode ser usado por código parcialmente confiável. Para obter mais informações, consulte Usando bibliotecas de código parcialmente confiável.
Consulte também
Referência
Namespace Microsoft.VisualBasic.PowerPacks
Outros recursos
Como desenhar linhas com o controle LineShape (Visual Studio)
Como desenhar formas com os controles OvalShape e RectangleShape (Visual Studio)