Shape.RectangleToScreen-Methode
Aktualisiert: November 2007
Berechnet die Größe und die Position des angegebenen Clientrechtecks in Bildschirmkoordinaten.
Namespace: Microsoft.VisualBasic.PowerPacks
Assembly: Microsoft.VisualBasic.PowerPacks.Vs (in Microsoft.VisualBasic.PowerPacks.Vs.dll)
Syntax
'Declaration
Public Function RectangleToScreen ( _
rect As Rectangle _
) As Rectangle
'Usage
Dim instance As Shape
Dim rect As Rectangle
Dim returnValue As Rectangle
returnValue = instance.RectangleToScreen(rect)
public Rectangle RectangleToScreen(
Rectangle rect
)
public:
Rectangle RectangleToScreen(
Rectangle rect
)
public function RectangleToScreen(
rect : Rectangle
) : Rectangle
Parameter
rect
Typ: System.Drawing.RectangleDas zu konvertierende Rectangle der Bildschirmkoordinate.
Rückgabewert
Rectangle , das das konvertierte Rectanglep in Bildschirmkoordinaten darstellt.
Hinweise
Einige Eigenschaften und Methoden geben Koordinaten relativ zur oberen linken Ecke des Bildschirms an, während andere Koordinaten relativ zum Clientformular angeben. Die Methoden RectangleToClient und RectangleToScreen können zum Konvertieren dieser Werte verwendet werden.
Beispiele
Im folgenden Beispiel wird veranschaulicht, wie Sie mit den Methoden PointToScreen und RectangleToScreen die Farbe von RectangleShape ändern, wenn das Ziehen über dem Clientbereich endet. Für dieses Beispiel müssen Sie über ein RectangleShape-Steuerelement mit dem Namen RectangleShape1 auf einem Formular verfügen, und die zugehörige BackStyle-Eigenschaft muss auf Opaque festgelegt sein.
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(ByVal sender As Object, ByVal e As _
System.Windows.Forms.MouseEventArgs) 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);
}
Berechtigungen
- Volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer. Dieser Member kann von nur teilweise vertrauenswürdigem Code nicht verwendet werden. Weitere Informationen finden Sie unter Verwenden von Bibliotheken aus teilweise vertrauenswürdigem Code.
Siehe auch
Referenz
Microsoft.VisualBasic.PowerPacks-Namespace
Weitere Ressourcen
Gewusst wie: Zeichnen von Linien mit dem LineShape-Steuerelement (Visual Studio)
Einführung in das Line-Steuerelement und das Shape-Steuerelement (Visual Studio)