Avatar billede lifo Nybegynder
08. maj 2004 - 19:53 Der er 6 kommentarer og
1 løsning

form.Show() problem

er stødt ind i et mærkeligt problem

jeg har en form som jeg forsøger at poppe up fra en Class fil
på denne måde
public PrivateMessage privm = new PrivateMessage();
privm.Show();
formen kommer op og fryser
den anden form som kører i baggrunden kører findt ??
men om jeg bruger privm.ShowDialog();
så vises den rigtigt nok men formen i baggrunden kører ikke videre før jeg lukker privm formen

jeg har ikke lavet nogen kode i PrivateMessage
kun knapper og andre ting

jeg har også testet at vise formen fra min mainForm  og da fungerer det fint ???

meget mærkeligt
Avatar billede ebita Nybegynder
15. maj 2004 - 15:16 #1
hej lifo,

du kan prøve med Application.DoEvents(); før du viser din form.

/ebita
Avatar billede magune Nybegynder
19. maj 2004 - 13:57 #2
Det er aldrig en god ide at benyttet DoEvents direkte. Det er den direkte vej til afgrunden.
Avatar billede magune Nybegynder
19. maj 2004 - 13:58 #3
Du skal se på hvilken mode formen startes i (a la "modal" osv.)

GAa
PS: Brug ALDRIG DoEvents direkte !
Avatar billede lifo Nybegynder
19. maj 2004 - 18:05 #4
Hvordan hør
Avatar billede lifo Nybegynder
19. maj 2004 - 18:06 #5
ups
Hvordan gør jeg det ??
kan ikke se noget i properties hvor man kan sætte noget med mode ?
Avatar billede lifo Nybegynder
19. maj 2004 - 18:22 #6
ok jeg har checket ved
MessageBox.Show("modal status er "+this.Modal);
i on load i PrivateMessage

når jeg bruger

ShowDialog()
så er den true og formen vises som den skal og blokerer
at den blokerer i showDialog havde jeg også forventet at den gjordte

når jeg bruger Show() 
er modal false og formen fryser men blokerer ikke

når jeg bruger Application.Run()
er modal false formen vises som den skal men den blokerer

har også lavet det nu såadan at jeg sender en delegate til class filen
delegaten peger på en metode i mainFormen som laver og viser PrivateMessage
men det hjalp heller ikke
Avatar billede lifo Nybegynder
19. maj 2004 - 18:46 #7
nu har jeg fået det at fungere men det er ikke en optimal løsning

har lavet en hjælpe klasse som hedder PmShower
og kører vis metoden i en tråd  så fungerer det
men kun om jeg bruger showDialog

public class PmShower
    {
        private VyPacket packet;
        public PmShower(VyPacket packet)
        {
            this.packet=packet;
        }
        //--------------------------------------------
        public void vis()
        {
            PrivateMessage pm = new PrivateMessage(packet);
            pm.ShowDialog(); // if i use Show() the form dissapers right away
        }
        //--------------------------------------------
    }

hvor jeg viser formen
PmShower pms = new PmShower(pk);
Thread t = new Thread(new ThreadStart(pms.vis));
t.Start();
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester