Efter lidt forskning/genopfriskning har jeg fundet løsningen!
Mellem din VB form og din VB kontrol findes der et objekt, som hedder en extender! Dette container objekt indeholder de properties du forespørger og kan hentes nemt på denne måde:
sub VisPos() msgbox "(" & Extender.Left & ", " & Extender.Top & ")" end sub
Det kan jeg ikke. Det er ikke meningen at man via formen, eller en OnClick event skal "lave noget selv" for at den ved det.
Det er en Flat Combo box jeg laver (ja, ja .. hvorfor opfinde hjulet igen ...) og der bliver dropdown listen vist i en form INDEN i kontrollen og der skal jeg vide hvor jeg skal placere den på skærmen (helst gerne under min kontrol *S*)
Det er MEGET besværligt at forklare.
Skematisk:
Jeg har en form. Form1 Jeg smider min kontrol på [Form1]. ThreeDCombo Når der klikkes på min kontrol ska den finde ud af hvilket værdi Form1.ThreeDCombo.Top og Form1.ThreeDCombo.Left. Min kontrol aktiverer derefter en Form (frmList) der er INDEN i kontrollen som den skal placerer lige nedenunder sig selv.
Dvs. frmList.Left = Form1.ThreeDCombo.Left frmList.Top = form1.ThreeDComob.Top + 130 (eller noget i den retning.)
men det kan man jo ikke ... ikke engang Usercontrol.Left eller .Top virker.
Det virkede helt perfekt! Dog måtte jeg bruge Abs() på X og Y da de var negative, men ellers var det helt fint!
Endnu engang mange tak!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.