Rajzolás egy ablak fölé


 Hogyan tudom megoldani, hogy egy ablak fölé rajzoljak? Nem az ablakra rá akarok, hanem fölé, viszont ha egy másik ablakot húzok rá, hogy takarja egy részét, akkor ugyan úgy takarja el a rajzonak a részét is ne csak az ablakot, amire ráhúztuk. Tehát a rajz a kettő között legyen, fedve a legalsót, de a felső ablak takarásában.
Előre is köszönöm a segítséget! |
| Akkor tegyél az ablak fölé egy másik ablakot, ami egy rajzot tartalmaz. Ez Nem az ablakon lesz, hanem külön elem. És ha erre húzol egy harmadik ablakot, akkor az természetesen takarja a rajzot is. Tehát a rajz a kettő között lesz. |
Nem tudom előre, hogy hány olyan asztal van ami fölé rajzolni kell, és futás időben ez folyamatosan változik. Hogyan tudom megoldani, hogy ha egy ablakot észlel, akkor autómatikusan létrehozzon egy újabb átlátszó ablakot? A folyamatos pozícionálását már megoldom szerintem.
Előre is köszzi! |
Hogyan tudom megoldani, hogy ha egy ablakot észlel, akkor autómatikusan létrehozzon egy újabb átlátszó ablakot?
A megnyitott ablak konstruktorába beteszed, hogy hozza létre az "átlátszó" ablakot is egyúttal. |
| Egy másik program ablakjárra kéne rárajzolnom, szóval a konstruktoros megoldás nem jöhet szóba. |
Akkor ez egy operációs rendszer ismereti kérdés, mert attól kell megkérdezned, hogy el lett-e indítva egy alkalmazás, és ha igen, hány példányban, stb...
Nálam Linux van. Gondolom, olyantól vársz választ, aki a Windows-t ismeri. |
| Egy Timerben azt tudom nézni, hogy hány window van megnyitva, azzal a résszel nem vagyok tisztában, hogy hogy hozzam létre az Window Formokat úgy hogy nem tudom mennyi fog majd kelleni. |
Egy Timerben azt tudom nézni, hogy hány window van megnyitva,
Akkor mi a probléma? Hozz létre pl. egy ArrayList-et, amiben dinamikusan tárolod a megnyitott ablakokat. Ha már nincs szükség egyre, kitörlöd a listából, és bezárod. |
| Azt nem tudom, hogy amikor futás időben pl létre kell hozni még egy window formot, akkor azt hogy csinálom meg? Hogy hivatkozok rá pl? |
| Hát ahogy mondtam. Ha beteszed egy ArrayList-be, akkor annak van egy indexelési lehetősége. Az index segítségével azonosítod! |
ArrayList win = new ArrayList();
//...
win.Add(new MyAtlatszoForm());
//..
// használod: (MyAtlatszoForm)win[i] // ez az i-edik!
|
Megcsináltam hogy az ablak fölé egy ugyan akkora Formot készít, viszont így nem tudok az alatta lévő ablakra kattintani!
Hacsak nincs olyen tulajdonság, hogy az ablakon át lehessen katintani, akkor ez a megoldás sem jó! |
| Ez a rákattintási lehetőség új számomra. Eddig erről nem volt szó. Csak arról, hogy fedje le. (Én pl. azt hittem, direkt azért feded le, hogy ne lehessen rákattintani.) |
|