![]() |
Position von ContextMenu
Ganz kurze Frage: Ich habe eine Ereignisfunktion für einen speziellen Tree-View, der mir den angeklickten Knoten und die Koordinaten liefert. Lasse ich das Popupmenü bei den gelieferten Koordinaten mit Delphi anzeigen, erscheint es exakt am Mauscursor. So wie es soll. Bei CSharp heißt es aber, dass das ContextMenu bzw. die Koordinaten relativ zum Control (1. Parameter) gelten:
Code:
Und damit sitzt mein Popupmenü leider ein Stück zu tief. :( Gibt´s so was wie "ClientToScreen" (API) auch im .NET Framework? Ich denke, ich muss anstelle von this entweder das Desktop-Control bzw. -Handle angeben (:gruebel:), oder ich muss die Koordinaten eben relativ zum Desktop umwandeln.
Point p = new Point(e.x, e.y);
printPopup.Show(this, p); |
Re: Position von ContextMenu
hallo mathias. das aus meiner d2005 hilfe
Zitat:
raik edit // sage nicht du brauchst es anderst herum :mrgreen: edit2 // da scheint delphi bloss die winapi irgenndwie integriert zu haben :cry: |
Re: Position von ContextMenu
Nee, das ist kein echtes .NET. ;) Guck mal das T vor TControl. Ich habe gerade die Suche vom .NET Framework SDK gequält. Da ist in der Hinsicht nichts zu finden. :(
|
Re: Position von ContextMenu
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab´s jetzt mal mit
Code:
probiert. Damit ist es zwar immer noch ein Stückchen weg, aber immerhin dichter dran als noch zuvor. :lol: Der Zwischenraum entspricht, wenn ich das richtig sehe, genau einem Eintrag im Tree-View. Tja, wenn mir einer helfen könnte, diese Lücke noch zu entfernen ...
printPopup.Show(this.TopLevelControl, p);
|
Re: Position von ContextMenu
Ahhhhh, "PointToScreen" und "PointToClient" heißt das im Framework :roll:
Code:
Und voilà: das Menü erscheint beim Cursor.
Point p = new Point(e.x, e.y);
p = this.PointToClient(p); printPopup.Show(this, p); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz