Gavekort Skrevet 1. januar 2010 Forfatter Del Skrevet 1. januar 2010 Helst ikke. For en idiotfeil, skulle nesten tro det var en bug... Lenke til kommentar
Gjest Slettet+9871234 Skrevet 1. januar 2010 Del Skrevet 1. januar 2010 "What seems to be the problem here son?" Lenke til kommentar
Gavekort Skrevet 1. januar 2010 Forfatter Del Skrevet 1. januar 2010 Vet ikke om jeg skal le eller gråte. Lenke til kommentar
Gjest Slettet+9871234 Skrevet 1. januar 2010 Del Skrevet 1. januar 2010 (endret) Ser ut som om .Show() krever en instanisert klasse for å kunne kalles. Metoden er ikke statisk og krever derfor en referanse/tilhørighet til et instansiert objekt. Form2 form = new Form2(); form.Show(); // noe i den duren? Du kan prøve Form2.Control.Show(); Jeg har ikke Visual Studio for hånden og får ikke testet. Har heller ikke jobbet mye med forms. --- Litt på siden. Er det ikke mer logisk å ha kun en Form for hele applikasjonen, og flere popupbokser? Kommer vel an på type appliksjon I guess, men jeg tenker på ditt eksempel. Endret 1. januar 2010 av Slettet+9871234 Lenke til kommentar
Araho Skrevet 1. januar 2010 Del Skrevet 1. januar 2010 (endret) Hva med dette? Virker mer som standard syntaks for en if enn den du har.... Nå skal det sies at jeg kun har erfaring fra C/C++ og PHP/JS, men allikevel er det vel verdt et forsøk? if (i < 10){ Form2.show(); } Greit nok at det vanligvis skal holde uten {} når man kun har én linje, men det kan jo være en fordel å sikre seg at det ikke er der feilen ligger Endret 1. januar 2010 av Araho Lenke til kommentar
GeirGrusom Skrevet 1. januar 2010 Del Skrevet 1. januar 2010 if(i < 10) (new Form2()).Show(); Lenke til kommentar
Gjest Slettet+9871234 Skrevet 1. januar 2010 Del Skrevet 1. januar 2010 (endret) Hvis du skriver new Form2(), har du da opprettet en instans av en statisk klasse? (Som ikke skal være mulig?) Jeg forstod ikke den syntaksen helt. C# har mange snarveier hehe. Endret 1. januar 2010 av Slettet+9871234 Lenke til kommentar
GeirGrusom Skrevet 1. januar 2010 Del Skrevet 1. januar 2010 Nei. Form2 er en klasse, mens Show er ikke en statisk funksjon. Det kreves derfor en instans av Form2 for å kunne kalle show. (new Form2()).Show() lager en ny form som en dangling reference og kaller show på den instansen. Lenke til kommentar
Gjest Slettet+9871234 Skrevet 1. januar 2010 Del Skrevet 1. januar 2010 "Dangling reference" er ukjent for meg. Det må jeg slå opp. Men hvordan kan du adressere eller referere en slik instanse når den ikke har navn? Er dette kun en syntaks man kan bruke i et slikt tilfelle, hvor man ikke behøver å referere et bestemt objekt? Lenke til kommentar
Gavekort Skrevet 1. januar 2010 Forfatter Del Skrevet 1. januar 2010 Jeg forstod ikke helt hvorfor, men Geir sin kode fungerte. Lenke til kommentar
Gjest Slettet+9871234 Skrevet 1. januar 2010 Del Skrevet 1. januar 2010 (endret) Når du bruker new operatoren foran klassenavnet, betyr det at du instansierer et objekt av type Form2. Det er påkrevd fordi metoden Show() ikke er statisk, og den trenger derfor en objekttilhørighet. http://www.csharp-station.com/tutorial.aspx Les leksjon 5. Endret 1. januar 2010 av Slettet+9871234 Lenke til kommentar
Gavekort Skrevet 1. januar 2010 Forfatter Del Skrevet 1. januar 2010 Takk takk, skal se på linken! Lenke til kommentar
GeirGrusom Skrevet 1. januar 2010 Del Skrevet 1. januar 2010 Det at den ikke blir lagret i en variabel ville gjort det til en dangling reference, men Windows Forms holder styr på alle kontrollene. Normalt ville et slikt kall gjort at referansen hadde gått rett til GC. Derfor en "dangling reference" Lenke til kommentar
Gjest Slettet+9871234 Skrevet 1. januar 2010 Del Skrevet 1. januar 2010 Så det kan være at .net rammeverket eller forms bibliotekene faktisk tilordner instansen til en variabel som er skjult? (Skal ikke mase mer nå, men det var litt interessant). Lenke til kommentar
GeirGrusom Skrevet 1. januar 2010 Del Skrevet 1. januar 2010 Ja. Windows Forms holder kontroll på det for deg Lenke til kommentar
miXer Skrevet 5. januar 2010 Del Skrevet 5. januar 2010 Når du skriver det slik: (new Form2()).Show; så lager den instansen og starter formen for deg men du vil ikke kunne få hentet ut noen informasjon fra formen. Hadde du derimot skrivd: Form2 form = new Form2(); form.Show(); så ville du kunne hentet ut informasjon fra formen i etterkant om ønskelig. 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å