Ueberdeckung

30/03/2010 - 16:21 von Alexander Yumas | Report spam
Hallo,

ich nochmal oder schonwieder ,-)


Wie kann man herausbekommen ob ein Control innerhalb eines Rechtecks
liegt, dasman gerade mit der Maus ausgewàhlt hat?

Also das Rechteck ist klar, aber ich muss nun wissen, welche der
Controls des Panels das Rechteck wenigstens tangieren?
Also wie in VS, wenn man mehrere Controls auswàhlt.
 

Lesen sie die antworten

#1 Frank Dzaebel
30/03/2010 - 18:55 | Warnen spam
Hallo Alexander,

Wie kann man herausbekommen ob ein Control innerhalb eines Rechtecks
liegt, dasman gerade mit der Maus ausgewàhlt hat?
Also das Rechteck ist klar, aber ich muss nun wissen, welche der
Controls des Panels das Rechteck wenigstens tangieren?
Also wie in VS, wenn man mehrere Controls auswàhlt.



Da kannst Du zum Beispiel die Schnittmengen-Methode der
Rectangle-Klasse benutzen (oder die der Region des Controls) :

[Rectangle.IntersectsWith-Methode (System.Drawing)]
http://msdn.microsoft.com/de-de/lib...swith.aspx

Also die Contains-Methode bestimmt, ob der von rect dargestellte
rechteckige Bereich "vollstàndig" in dieser Rectangle-Struktur enthalten
ist:

[Rectangle.Contains-Methode (Rectangle) (System.Drawing)]
http://msdn.microsoft.com/de-de/lib...3ee9e.aspx

Du musst dabei immer etwas aufpassen, ob Screen- oder
Client-Koordinaten benutzt werden. Zur Umrechnung gibt es
u.a. die PointToScreen und die PointToClient-Methode.

[Control.Bounds-Eigenschaft (System.Windows.Forms)]
http://msdn.microsoft.com/de-de/lib...ounds.aspx

[Control.ClientRectangle-Eigenschaft (System.Windows.Forms)]
http://msdn.microsoft.com/de-de/lib...angle.aspx

Und dann solltest Du noch schauen, ob Du das Rechteck meinst,
was das Control umschliesst, oder das innere ClientRectangle ist, oder
eigentlich die Region, die das Control ausfüllt (der dem
Steuerelement zugeordneten Fensterbereich .. wo Windows bzgl.
des Controls zeichnen darf) :

[Control.Region-Eigenschaft (System.Windows.Forms)]
http://msdn.microsoft.com/de-de/lib...egion.aspx

Also im Grunde dann:

[Region.Intersect-Methode (Rectangle) (System.Drawing)]
http://msdn.microsoft.com/de-de/lib...sx694.aspx


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen