2010-09-06 8 views

Répondre

0

Vous pouvez écrire une méthode d'extension qui vous renvoie un tableau des points que vous souhaitez. Je ne fais pas vraiment VB, mais un exemple en C# serait quelque chose comme ...

public static class RectangleExtensions 
{ 
    public static Point[] GetPoints(this Rectangle rect) 
    { 
     return new Point[] 
     { 
      new Point(rect.Left, rect.Top), 
      new Point(rect.Right, rect.Top), 
      new Point(rect.Right, rect.Bottom), 
      new Point(rect.Left, rect.Bottom) 
     }; 
    } 
} 

public class example 
{ 
    public void ExampleMethod() 
    { 
     Rectangle rect = new Rectangle(); 
     foreach (Point point in rect.GetPoints()) 
      Console.WriteLine(point.ToString()); 
    } 
} 
+0

Merci, Je peux l'utiliser mais je tiens toujours à le faire sans ma propre fonction. C'est l'objet rectangle de l'espace de noms system.drawing - comment peut-il y avoir un moyen intégré de faire défiler les points? – pghcpa

+0

http://msdn.microsoft.com/fr-fr/library/system.drawing.rectangle_members.aspx –

+0

Vérifiez que vous-même. Il n'y a pas de méthode "GetPoints" intégrée ou quoi que ce soit. Pourquoi y en aurait-il? Ce n'est pas vraiment une opération particulièrement courante. –

0
Function GetAllPoints(ByVal r As Rectangle) As Point() 
    Return { _ 
    New Point(r.Left, r.Top), _ 
    New Point(r.Right, r.Top), _ 
    New Point(r.Left, r.Bottom), _ 
    New Point(r.Right, r.Bottom) _ 
    } 
End Function 

(Suite de la ligne ajoutée à soutenir les anciennes versions de VB.NET)

+0

Vos x et y ne sont-ils pas retournés? –

+0

Oui, c'est embarrassant. Fixé. – Larsenal

Questions connexes