Lave x antal labels når der klikkes på en knap

Tags:    c#

<< < 12 > >>
Hejsa..

Jeg er rimelig ny i C#. Jeg skal have lavet et lille program, hvor brugeren kan indtaste et tal i en textBox, og derefter klikke på en ok-knap. Alt efter hvilket antal brugeren har indtastet i textfeltet, skal der laves det antal textboxe og placeres under hinanden.

Havde forestillet mig at det skulle køre i et loop, altså noget ala

Fold kodeboks ind/udKode 


Nogen der kender en løsning..? Bruger VS2005.

Mvh. Anders



12 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Anders, den kode du selv skriver burde virke:

Fold kodeboks ind/udKode 


Jeg har lige testet det og det virker her.

Det kan være fordi koden slet ikke bliver udført når du klikker på knappen. Du kan prøve at tilføje:

MessageBox.Show("sker der noget?");

Så burde der komme en lille boks op når du klikker på knappen. Hvis det ikke sker bliver du nød til at gå ind i designeren igen og få oprettet en ny metode som bliver kaldt når du klikker på knappen. (Gøres ved at dobbeltklikke på knappen)

--
For at lave alle knapperne skal du først bruge en kode der kan læse indholdet af din textbox ind som en integer.

Dette gøres ved at bruge int.Parse(textBox1.Text). Dog skal du være opmærksom på at man kan komme til at indtaste noget forkert, fx bogstaver. Når man gør det vil int.Parse() smide en exception og programmet vil blive lukket. For at undgå dette skal du bruge følgende:
Fold kodeboks ind/udKode 


(Jeg håber ikke jeg fik forklaret noget du allerede vidste :))



Hmmm, nu er jeg også relativ meget ny til C#, men jeg kunne forestille mig det er den bedste løsning, og jeg vil ikke mene while kan gøre det optimal nok. hvis det skulle lave med while skulle det nok sådan ud (ca)

Fold kodeboks ind/udKode 


og i principet er det det samme som sker, med for er det bare på mindre antal linier, så det ville jeg gøre.



Jeg kan ikke se hvorfor du får så mange problemer, det er jo lige ud ad landevejen!

Lav en forløkke og smid dem i din controls med en placering og en størrelse (som beskrevet ovenfor). Jeg har selv lavet det mange gange.

Så er du done !



Tak, men det største problem er nok hvordan jeg får lavet de textboxe :)

Jeg har prøvet mig lidt frem, bare med at lave en label, men for at få det til at virke, skal koden i button1_Click() stå - før - InitializeComponent(); i public Form1(), og hvis den gør det, bliver det jo ikke udført når brugeren trykker på knappen.

Lige lidt kode:
Fold kodeboks ind/udKode 


Hvis man trykker på Button1 sker der intet. Men hvis man flytter koden for Label test op over InitializeComponent(); i Form1() virker det fint.. Jeg ved godt at jeg bare kan sætte den til at være usynlig fra start, og så først gøre den synlig når man trykker på knappen, men problemet er jo, at for at lave det jeg gerne vil skal den jo udskrive x antal textboxe (ovenstående er bare en test), og antallet af textboxe vides jo først når brugeren trykker på Button1.



Indlæg senest redigeret d. 27.04.2006 20:49 af Bruger #7423
øhh skal der her ikke også indgå i koden:
[code]
public void Main() {
Application.Run(new Form1());
}

}



?? Det behøves vel ikke.. Men det er ikke det jeg har problemer med, bruger VS2005, så meget af koden har jeg ikke selv skrevet, mit problem er det med at få lavet de boxe :)



Ved ikke om det virker, men prøv se

Fold kodeboks ind/udKode 


Jeg vil tro det er noget i den stil.



Indlæg senest redigeret d. 27.04.2006 21:35 af Bruger #6559
Hej.. det virker desværre ikke :[



Jeg vil lige kigge på det nårjeg kommer hjem fra skole, hehe for jeg skal nemlig bruge noget i samme stil selv.:D



Ja, kan man ikke også bruge det her, eller giver det en syntax fejl (Tror faktisk det vil, kan nemlig ikke tjekke)

Fold kodeboks ind/udKode 




<< < 12 > >>
t