hur bestämmer man exakt vart på bildskärmen ett fönster ska öppnas, har nämligen ett program där man kan öppna fler fönster, då vill jag kunna placera ut vart de ska öppnas. det finn ju en metod (startposition), men där går det ju inte att sätta exakt utan enbart ex centerscreen. Johan, Om man vill sätta positionen oberoende vilken upplösning man har på skärmen, går det? vill alltid att vänster topp ska ligga på ett visst ställe... Johan, ok ska försöka förklara :) Johan, Nu är man på rätt väg. Johan, det är precis som du skrev...jag vill positionera ut det nya fönstret bredvid en knapp i det gamal. Nu är jag med :) Johan,sätta position på fönster
hur gör man då?
jobbar i VS.NET men VB.NET som språk!
/JSv: sätta position på fönster
Om du vill göra det med hjälp av kod så kan du använda <b>Location</b> propertyn som du skall sätta med en ny <b>Point</b>. Nedanstående exempel visar hur du placerar ett nytt fönster så att över-vänsterhörn hamnar på koordinaten 100, 100
[VB.NET]
Dim myForm As New Form2
myForm.Location = New Point(100,100)
Sv: sätta position på fönster
/JSv: sätta position på fönster
Nu får du nog utveckla dig lite. 100, 100 är juh alltid 100,100 oavsett upplösning. Men om du vill att den skall centreras, placeras procentuellt baserad på skärmens dimensioner etc så får du nog förklara vad det är du vill göra. Du har fått svar på urspprungsfrågan - hur man sätter positionen på ett fönster.. nu behöver du förklara problem 2 så vi kan hitta en lösning där med =)Sv: sätta position på fönster
Har ett program där ett windows form startas. detta fönster centreras vid start. sedan kan man flytta runt förstret som man vill. Har en metod i det programmet där ett nytt windows form öppnas. jag vill då kunna placera det nya fönstret så det ligger kant i kant med det gamla, oberoende vart det "gamla" fönstret ligger. jag vill alltså alltid att det "nya" fönstret ska öppnas på en bestämd plats på det "gamla"
hänger ni med? :=)
//JohanSv: sätta position på fönster
Ok så det handlar om lite vanliga beräknar som inte är svårare än plus och minus. Fram med papper och penne och baserad det på följande information. Du vet hur man sätter positionen på det nya fönstret, var du bhöver är att räkna ut vilka koordinaterna är.
Om vi antar att du öppnar fönster 2 inne ifrån koden för förster 1 så kan du gå från fönster 1 ta reda på dess <b>Location</b> och du har även tillgång till <b>Width</b> och <b>Height</b> egenskaperna på fönstret.
Så låt oss utgår ifrån att du ska placera det nya fönstret på högersida om det gamla fönstret så är positionen för det nya fönstret
[VB.NET]
Dim myPoint As Point
myPoint = New Point(Me.Location.X + Me.Width, Me.Location.Y)
Dim myForm As New Form2
myForm.Location = myPoint
myForm.Show()
Samma princip oavsett var du relativt ska placera ditt nya fönster. Helt vanliga beräkningar ut ifrån det gamla fönstrets dimensioner och position.
Hoppas det löser sig!
Sv: sätta position på fönster
men hur vet man vilken kordinat en viss punkt har..? Om man ex kollar i design läge.
Det "nya" fönstret ska öppnas på en speciell plats i det "gamla" fönstret.
Men hur får man kordinaten till en viss punkt?Sv: sätta position på fönster
Är rädd för att jag inte förstår ditt problem? Är det så att du kanske vil positionera det nya fönstret relativt till något innehåll i det gamla? T.ex att du vill placera fönstret precis brevid en knapp i ditt gamla fönster eller liknande? För jag tror inte att du har problem med att förstå pixlar och koordinatsystem där 0,0 är uppe i skärmens över-vänster hörn ? =)Sv: sätta position på fönster
Det ska då inte spela någon roll vilken upplösningar jag har och inte heller om jag manuellt flyttar fönstret...
är du med nu? :)Sv: sätta position på fönster
börjar fatta....plockar ut knappens location och sätter in i det nya fönstret ...
man lär sig :)Sv: sätta position på fönster
Precis så =) Alla controler (även fönster) äver från samma basklass och det är där som <b>Location</b> är defineras - därav delat de samma grundfunktionalitet =)