dabear Skrevet 3. oktober 2007 Del Skrevet 3. oktober 2007 Heppsann. Om jeg har lagt til form1.vb, form2.vb ..osv i et prosjekt, finnes det da en måte å automatisk initialisere disse formene og vise de på skjermen, uten at jeg må manuelt skrive dette? dim form2 as Form = new Form2 form2.show() dim form 3 as Form = new Form3() form3.show() 'etc Visual Studio 2005 og vb.net Lenke til kommentar
Manfred Skrevet 3. oktober 2007 Del Skrevet 3. oktober 2007 Ja, for det var jo forferdelig mye å skrive... Hvordan mener du at formene skal vises hvis du ikke forteller programmet AT de skal vises? Maskinen din er nok ikke helt synsk enda... Lenke til kommentar
HDSoftware Skrevet 4. oktober 2007 Del Skrevet 4. oktober 2007 Hva med å lage deg en egen FormOpener klasse? Aner ikek om dette virker, men prøv. public class FormOpener public Function FastOpen(ByRef Vindu as Object) as Object dim w as Form = new Vindu w.show() return w End End Så kan du jo kalle disse slik: dim Form2 as Form = FormOpener.FastOpen(Form) dim Form3 as Form = FormOpener.FastOpen(Form) Sparer du noe her? Neppe, men det er morro da :-D nb! Kanke engang garantere at dette kompillerer :-D Lenke til kommentar
GeirGrusom Skrevet 4. oktober 2007 Del Skrevet 4. oktober 2007 Public Class FormOpener Public Shared Function FastOpen(ByVal t As Type) As Form Dim w As Form = Activator.CreateInstance(t) w.show() Return w End Function End Class Dim form1 As Form = FormOpener.FastOpen(GetType(Form1)) Dim form2 As Form = FormOpener.FastOpen(GetType(Form2)) tror jeg skulle fungere bedre, nå er dette utestet, men.... Lenke til kommentar
j000rn Skrevet 4. oktober 2007 Del Skrevet 4. oktober 2007 Hva med å lage deg en egen FormOpener klasse? dim Form2 as Form = FormOpener.FastOpen(Form) dim Form3 as Form = FormOpener.FastOpen(Form) Sparer du noe her? Neppe, men det er morro da :-D 9632483[/snapback] New Form1().Show() New Form2().Show() New Form3().Show() New Form4().Show() ,,,, Lenke til kommentar
Wubbable Skrevet 4. oktober 2007 Del Skrevet 4. oktober 2007 dim form2 as Form = new Form2 form2.show() dim form 3 as Form = new Form3() form3.show() 'etc 9630173[/snapback] Kan noen si meg hva som er vitsen i å deklarere form2 som new form og vise den, istedenfor å bare gjøre slik: Navnpåform.Show() (det navnet du har gitt formen som allerede finnes (?) i designeren) Lenke til kommentar
GeirGrusom Skrevet 4. oktober 2007 Del Skrevet 4. oktober 2007 Fordi det er en støtte som kun er lagt med for at Visual Basic 6.0 brukere ikke skal brast i gråt når de faktisk må venne seg til at Visual Basic.NET er objekt orientert. Dette er riktig fremgangsmåte, og vil føre til at man ikke får hikke når dette ikke går an i noen andre språk. Lenke til kommentar
j000rn Skrevet 4. oktober 2007 Del Skrevet 4. oktober 2007 Fordi det er en støtte som kun er lagt med for at Visual Basic 6.0 brukere ikke skal brast i gråt når de faktisk må venne seg til at Visual Basic.NET er objekt orientert. 9634386[/snapback] Er det lov å begynne å gråte fordi de HAR laget denne "featuren"? Lenke til kommentar
Moskus Skrevet 4. oktober 2007 Del Skrevet 4. oktober 2007 Nei. Men du får lov å skyte deg i foten etterpå... Lenke til kommentar
dabear Skrevet 4. oktober 2007 Forfatter Del Skrevet 4. oktober 2007 Takk for svar, men dere misforstår nok noe. Jeg var ute etter en måte å finne alle forms i et prosjekt, loope gjennom og vise de. my.application.openForms viser alle former som er åpna (typisk kun Form1), men jeg ønsker altså å åpne alle former i prosjektet, gjerne ved et knappetrykk. Lenke til kommentar
Wubbable Skrevet 4. oktober 2007 Del Skrevet 4. oktober 2007 Du minner meg om meg Å ha så lite kode som overhodet mulig, og gjøre ting så enkelt og effektivt som mulig ^^ Lenke til kommentar
j000rn Skrevet 4. oktober 2007 Del Skrevet 4. oktober 2007 Takk for svar, men dere misforstår nok noe. Jeg var ute etter en måte å finne alle forms i et prosjekt, loope gjennom og vise de. 9634941[/snapback] Du kan bruke reflection og finne klasser som arver av System.Windows.Form og initialisere og vise disse. Dette blir nok mer kode enn om du skal gjøre det manuelt hvis du ikke har flere enn 50 forms. Men...., det virker som du har en stor "designfeil" i prosjektet ditt. Hvorfor har du så mange forms? Hvorfor skal du vise alle sammen? Dette hørtes veldig rotete ut... Lenke til kommentar
Moskus Skrevet 4. oktober 2007 Del Skrevet 4. oktober 2007 Form'ene må vel uansett deklareres for at de skal kunne vises, så jeg tror uansett du må kode det... Lenke til kommentar
Wubbable Skrevet 4. oktober 2007 Del Skrevet 4. oktober 2007 visvas Navn.Show() uten noe som helst annet fungerer perfekt... Lenke til kommentar
Moskus Skrevet 4. oktober 2007 Del Skrevet 4. oktober 2007 Det er fremdeles kodet, er det ikke? Man må jo fremdeles skrive alle navnene... Og er det en god ide å gjøre det uten deklarasjon? Kjøres New() da? Lenke til kommentar
Wubbable Skrevet 4. oktober 2007 Del Skrevet 4. oktober 2007 Hvorfor ikke bare bruke Form_Load eventen? Lenke til kommentar
dabear Skrevet 4. oktober 2007 Forfatter Del Skrevet 4. oktober 2007 Men...., det virker som du har en stor "designfeil" i prosjektet ditt. Hvorfor har du så mange forms? Hvorfor skal du vise alle sammen? Dette hørtes veldig rotete ut... 9635810[/snapback] én form per oppgave, liker å skille hver skoleoppgave i egen form Hvorfor ikke bare bruke Form_Load eventen? 9636196[/snapback] Kan ikke se at denne eventen hjelper meg noe i det jeg ønsker Lenke til kommentar
Moskus Skrevet 4. oktober 2007 Del Skrevet 4. oktober 2007 Hvis du har et form pr. oppgave trenger du vel ikke vise alle samtidig? Høres ut som det fort blir rotete (kanskje noe bedre hvis det er et MDI-program)... Wubbable, New() er kjekk å kjøre da den kjører InitializeComponent() og gir (iallfall for meg) større muligheter for å sende "variabler" til og fra skjemaet. Lenke til kommentar
dabear Skrevet 4. oktober 2007 Forfatter Del Skrevet 4. oktober 2007 Det kan være ønskelig å generere knapper som åpner et vindu der oppgaven ligger. Istedet for å gjøre dette for hver oppgave, kunne jeg tenkt meg å automatisere dette. Jeg leiter rett og slett etter en collection som inneholder alt i my.Forms (denne er ikke iterabel, ser det ut til..) Lenke til kommentar
j000rn Skrevet 4. oktober 2007 Del Skrevet 4. oktober 2007 Hvis du har et form pr. oppgave trenger du vel ikke vise alle samtidig?Høres ut som det fort blir rotete (kanskje noe bedre hvis det er et MDI-program)... Wubbable, New() er kjekk å kjøre da den kjører InitializeComponent() og gir (iallfall for meg) større muligheter for å sende "variabler" til og fra skjemaet. 9637119[/snapback] New blir alltid kjørt uansett. InitializeComponent regner jeg blir kjørt automatisk fordi den arver av System.Windows.Form som kjører den. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå