Mit problem er så at intet under linien Application.Run(f1); kører før MyForm (f1) er lukket.
Linien f1.setWindowTitle("test"); kører ikke før vinduet er væk og så er det jo ligemeget. Mit program går ind i Application.Run og kommer først videre når vinduet er lukket.
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Ok, nu har jeg kigget på forskellige eksempler på trådhåndtering, men på nuværende tidspunkt forvirrer det mig mere end det gavner.
Hvis du ikke vil/gider hjælpe med at rette i den kode jeg tager udgangspunkt i, så lader jeg spørgsmålet stå i håb at der er andre der vil træde til. Det kan trods alt ikke være alt for mange linier der skal tilføjes for at mit lille eksempel kommer til at køre...
Du kan jo nedarve ApplicationContext med en ny klasse og kalde formen derfra. Men siden du siger du er helt ny inden for C# vil jeg ikke kede dig med lange forklaringer. Jeg har givet et eksempel nedenfor som udfører den handling du ønsker! :)
using System; using System.Windows.Forms; using System.Drawing;
class Launcher { public static void Main() { Application.Run(new MyApplication()); } }
class MyApplication : ApplicationContext { public MyApplication() { MyForm f1 = new MyForm(); MyForm2 f2 = new MyForm2();
f1.setWindowTitle("test"); f1.Show();
f2.setWindowTitle("Test myform2"); f2.Show(); } }
class MyForm : Form { public void setWindowTitle(string s) { Console.WriteLine("setWindowTitle called"); Text = s; }
Nu dit eget eksempel... setWindowTitle??.. jeg går ud fra at den metode er lavet af rent pedagoiske grunde eller hvad?... og at sætte Text på formen efter du har startet den er vel også rent pedagoisk?... For i dit eget eks. burde dette være fint: (Du skal dog lige bruge din egen form istedet, "MyForm").
Form f = new Form(); f.Text = "Test"; Application.Run( f );
...
Men jeg går ud fra dit egentlige problem er at du ønsker nogle flere ting udført direkte fra din main eller fra der hvor du kalder App...Run()...
Men hvor vidt det er nødvendigt at begynde at lave egen app context skal du lige overveje...
Ting du skal overveje er om der er nogen gode grunde til at de først skal udføres efter at MainFormen er startet (kan de evt. udføres inden?)... i såfald gør det (IMO)... Personligt kan jeg kun komme i tanke om brugen i selv samme forbindelse som Snap demonstrerer det, nemlig at man vil starte 2 "Uafhængige" Forms... (Som kan være designmæssigt pænere afhængigt af hvad det er man vil lave).
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.