Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack
https://fgheysels.github.io/
Dat Form1 erboven komt te staan als ie zelf ook TopMost is, is ook logisch. Maar niet wat ik wil
[ Voor 18% gewijzigd door riezebosch op 29-06-2005 11:17 ]
Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack
[ Voor 3% gewijzigd door phYzar op 29-06-2005 11:32 ]
Verwijderd
Zet je eigenschappen venster op TopMost = true
Je Form1 op TopMost = false
De FormBorderStyle van Form2 zet je op FixedToolWindow.
Vanuit Form1 roep je Form2.Show op. Nu blijft Form2 boven Form1 staan en kun je nog altijd aan
form1.
Het is puur een hoofdscherm met daarbovenop een eigenschappenschermpje. Als ik die MDI maak, kan ik 'm ook niet meer buiten m'n hoofdscherm slepen.phYzar schreef op woensdag 29 juni 2005 @ 11:31:
Als je met meerder vensters wilt werken die je allemaal tegelijk nodig hebt, is het dan niet slimmer om met mdiparent en mdichildren te gaan werken? Ook hiermee kun je eenvoudig data heen en weer sturen tussen de forms.
Zo heb ik het dus. Maar Form1 moet ook de mogelijkheid hebben TopMost te zijn.Verwijderd schreef op woensdag 29 juni 2005 @ 11:32:
Wat je volgens mij kan doen is het volgende:
Zet je eigenschappen venster op TopMost = true
Je Form1 op TopMost = false
De FormBorderStyle van Form2 zet je op FixedToolWindow.
Vanuit Form1 roep je Form2.Show op. Nu blijft Form2 boven Form1 staan en kun je nog altijd aan
form1.
Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack
Waarom wil je 2 dingen topmost? Dat is toch onmogelijk? Als je altijd je eigenschappenvenster wilt zien wordt die topmost, waarom dan form1 óók topmost? Je kunt toch gewoon "je ding doen" in form1 en form2 mee laten updaten? Of zit form2 dan in de weg? Of blijft form2 topmost en kan er een ander programma tussen form1 en form2 komen doordat form1 onderop raakt en form2 topmost is?riezebosch schreef op woensdag 29 juni 2005 @ 13:07:
Zo heb ik het dus. Maar Form1 moet ook de mogelijkheid hebben TopMost te zijn.
<bert visscher modus>
Vertel, vertel! Niet te snel we schrijven mee!
//edit
zoiets?
[ Voor 13% gewijzigd door phYzar op 29-06-2005 14:00 ]
oogjes open, snaveltjes dicht
Form1 heeft TopMost nodig omdat het voor de gebruiker handig kan zijn. Als deze echter de Toolbox (Form2) geopend heeft, moet deze op zijn beurt natuurlijk weer altijd boven Form1 staan. Wat dat betreft is TopMost ook weer niet de mooiste oplossing voor Form2, want als Form1 niet TopMost is en de gebruiker schakelt over naar een ander programma blijft Form2 daar weer bovenop staan.
Ik hoopte dat er een soort propertie was die je mee kon geven aan ShowDialog oid, dat het nieuwe Form wel bovenop de owner blijft staan, maar dat de owner wel ook nog bereikbaar blijft.
Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack
Verwijderd
Er bestaat anders geen mogelijkheid om die TopMost te houden volgens mij.
Een focus vereist nu juist dat een form naar boven komt. Daar kun je niks aan doen.
Verwijderd
Het zal tijdens het schakelen wel een flikkering geven maar dan heb je wel wat je zoekt. Tenzij tijdens het werken in form1 deze weer naar de voorgrond gedrukt wordt maar dat lijkt mij niet.
Verwijderd
http://www.devcomponents.com/dotnetbar/ of
http://www.divil.co.uk/net/controls/sanddock/
of een van de vele anderen natuurlijk.
Door de Win32 functie te importeren:
1
2
| [DllImport("user32")] public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInserAfter, int X, int Y, int cx, int cy, int uFlags); |
... en in de OnActivated van Form1 deze aan te roepen:
1
2
| if (Form2.Visible) SetWindowPos(Form2.Handle, new IntPtr(-1), Form2.Left, Form2.Top, Form2.Width, Form2.Height, 0x0010); |
... duwt Form1 bij activeren Form2 naar de voorgrond, en die blijft daar dus ook staan. Nu hoeft Form2 dus niet eens meer TopMost te zijn
Edit:
Laatste dus nog wel. Want als anders Form1 wél TopMost is, krijgt ie in de OnActivated niet Form2 voor zichzelft geduwt. Maar ach, dan geef ik toch gewoon aan Form2 mee of ie TopMost moet zijn of niet
[ Voor 17% gewijzigd door riezebosch op 29-06-2005 16:53 ]
Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack
Verwijderd
1
2
| Form2.Owner = this; Form2.Show(); |
Nu blijft Form2 altijd boven Form1 staan, ongeacht of Form1 TopMost is of niet en blijft Form1 wel gewoon bereikbaar. Wanneer Form1 niet TopMost is, verdwijnt Form2 ook netjes achter andere programma's wanneer die naar de voorgrond gehaald worden.
Was eigenlijk op zoek naar waarom ContextMenu's verdwijnen achter de applicatie wanneer deze TopMost is...
[ Voor 16% gewijzigd door riezebosch op 01-07-2005 11:38 ]
Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack
Die dus? Wel goed lezen he?
Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.
Maar goed, ik kom er nu achter dat wanneer m'n Form1 wel initieel al TopMost is, ik in de OnLoad van Form2 alsnog een SetWindowPos moet doen om 'm voor Form1 te pushen. Anders wordt ie alsnog er achter geladen en krijg ik 'm dus ook met geen mogelijkheid meer er voor.
Het werkt nu zelf nog beter dan dat ik 4 posts geschreven had, want toen verdween Form2 nog achter Form1 als je iets uit het menu selecteerde. Nu blijft ie dan ook netjes er voor staan.
Alsnog bedankt, Yzar
Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack
Graag gedaan ezeboschriezebosch schreef op vrijdag 01 juli 2005 @ 12:10:
Inderdaad. Heb denk ik de edit van phYzar over het hoofd gezien.
Alsnog bedankt, phYzar
Verwijderd
dat is inderdaad de juiste manier om het te doenriezebosch schreef op vrijdag 01 juli 2005 @ 11:36:
Ok, via een accidental hit kwam ik op deze site een nette manier tegen om mijn probleem op te lossen:
C#:
1 2 Form2.Owner = this; Form2.Show();
Nu blijft Form2 altijd boven Form1 staan, ongeacht of Form1 TopMost is of niet en blijft Form1 wel gewoon bereikbaar. Wanneer Form1 niet TopMost is, verdwijnt Form2 ook netjes achter andere programma's wanneer die naar de voorgrond gehaald worden.
edit:
Was eigenlijk op zoek naar waarom ContextMenu's verdwijnen achter de applicatie wanneer deze TopMost is...
Haha, ik weet niet wat er met me aan de hand is maar ik heb geloof ik de neiging de helft van jouw tekst over te slaan...
Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack