Toon posts:

[C#] meerdere labels vullen in lus

Pagina: 1
Acties:

Verwijderd

Topicstarter
Mijn xcuses dat ik alles weggehaald had:

Ik probeer herhaaldelijk een ander label te vullen C# dotnet (web).

Weergegeven wordt de dag van de maand van ma t/m zo. Momenteel gebeurt het op deze manier maar dat is niet echt netjes en zeer veel werk als je bijvoorbeeld 100 labels wil vullen.

=============================
private int FirstDayOfWeek()
{
GregorianCalendar c = new GregorianCalendar();
int today = (int)(c.GetDayOfWeek(DateTime.Today)-1);
return today;
}


//datum maandag
DateTime maandag = DateTime.Now.AddDays(FirstDayOfWeek()*-1);
string ma = maandag.ToString("dd");
lbMa.Text = ma;

.....

//de datum van zondag
DateTime zondag = DateTime.Now.AddDays((FirstDayOfWeek()*-1)+6);
string zo = zondag.ToString("dd");
lbZo.Text = zo;
=============================

een oplossing die ik bedacht had maar niet werkt:

/*for(int day = 0; day < 2; day++)
{
DateTime dinsdag = DateTime.Now.AddDays((FirstDayOfWeek()*-1)+day);
string di = dinsdag.ToString("d");
(lbDag+day).Text = di; <--- !!!dit werkt dus niet!!!
}*/

===============================

een andere oplossing (bijna net zo omslachtig als de eerste)

for(int day=0; day<=6; day++)
{
DateTime dayofweek = DateTime.Now.AddDays((DayOfWeek()*-1)+ day);
string j = dayofweek.ToString("dd");
if (day == 0)
{
lbMa.Text= j;
}
else if (day == 1)
{
lbDi.Text=j;
}

....................

else if (day == 6)
{
lbZo.Text=j;
}

}

Iemand een oplossing zodat het net en snel kan???

Groeten Nickolass

[ Voor 180% gewijzigd door Verwijderd op 08-04-2003 14:54 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:27

Creepy

Tactical Espionage Splatterer

Ik heb 0,0 ervaring met dotNet maaruh waarom geen array maken van labels?
labelarray[day].Text='blaat'

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Java:
1
(lbDag+day).Text = di; <--- !!!dit werkt dus niet!!!


Het klopt dat dit niet werkt. Je probeert hier lbDag + dag te doen. Je kan variabelen echter niet gebruiken als strings zodat je kan concateneren. Je zult hier moeten werken met iets van een array. Dit zal er ongeveer zo uitzien

Java:
1
2
3
4
5
6
7
8
Label[] labels = new Label[ 7 ];
//vul hier je array met de gewenste labels;
for( int dag = 0; dag < labels.Length; dag++ )
{
    string blaat;
    //vul hier je string met wat je erin wil hebben
    labels[ dag ].Text = blaat;
}

edit:
code tags maar even in java veranderd want dan heb je tenminste mooie kleurtjes

[ Voor 26% gewijzigd door Woy op 08-04-2003 12:21 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • EfBe
  • Registratie: Januari 2000
  • Niet online
Ik snap werkelijk niet wat je wilt doen. Die brei code die je post is zeer verwarrend. Wil je een calender maken? Wil je labels 'maandag' tm 'zondag' voorzien van de dag in de datum? Wil je vanaf huidige datum allerlei datumlabels vullen?

Dat stukje code op het eind is wel te optimizen met een switch / case (sowieso is 'else if' een teken aan de wand dat je switch moet gebruiken). Als je een functie-resultaat altijd vermenigvuldigt met '-1' is het wellicht verstandig in de functie dat resultaat van 0 af te trekken.

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
for(int i=0;i<6;i++)
{
    string sDayNo = DateTime.Now.AddDays((0-FirstDayOfWeek()) + i).ToString("dd");
    switch(i)
    {
        case 0:
            lbMa.Text = sDayNo;
            break;
        case 1:
            lbDi.Text = sDayNo;
            break;
        // etc;
    }
}

[ Voor 5% gewijzigd door EfBe op 08-04-2003 12:03 ]

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:02
Je kunt ook gebruik maken van de controls collection om zo door je controls op je form te bladeren.
Je kan dan testen of de huidige control een label is, en dan gepaste actie ondernemen.

https://fgheysels.github.io/


Verwijderd

Topicstarter
rwb schreef op 08 April 2003 @ 11:53:
Java:
1
(lbDag+day).Text = di; <--- !!!dit werkt dus niet!!!


knip

[/code]
edit:
code tags maar even in java veranderd want dan heb je tenminste mooie kleurtjes
whoei, dit werkt als een trein, sim-pel eigenlijk maar ik was er zelf nog niet opgekomen, ben nog niet zo heel lang bezig vandaar, hardstikke bedankt gast!!

Verwijderd

rwb schreef op 08 april 2003 @ 11:53:
Java:
1
(lbDag+day).Text = di; <--- !!!dit werkt dus niet!!!


Het klopt dat dit niet werkt. Je probeert hier lbDag + dag te doen. Je kan variabelen echter niet gebruiken als strings zodat je kan concateneren. Je zult hier moeten werken met iets van een array. Dit zal er ongeveer zo uitzien

Java:
1
2
3
4
5
6
7
8
Label[] labels = new Label[ 7 ];
//vul hier je array met de gewenste labels;
for( int dag = 0; dag < labels.Length; dag++ )
{
    string blaat;
    //vul hier je string met wat je erin wil hebben
    labels[ dag ].Text = blaat;
}

edit:
code tags maar even in java veranderd want dan heb je tenminste mooie kleurtjes
Ik heb dit geprobeerd, maar krijg op "labels[ dag ].Text = blaat;" De melding object reference not set to an object. Dus bij mij werkt het niet.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Verwijderd schreef op 08 April 2003 @ 13:55:
[...]


Ik heb dit geprobeerd, maar krijg op "labels[ dag ].Text = blaat;" De melding object reference not set to an object. Dus bij mij werkt het niet.
Dat komt dan omdat je het stukje wat ik gecomment had niet hebt uitgevoerd. Er staan dan nog nullpointers in de array en dan krijg je inderdaad een NullPointerException

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Rataplan
  • Registratie: Oktober 2001
  • Niet online

Rataplan

per aspera ad astra

Kan de startpost even worden hersteld? Dit topic is nu namelijk volstrekt onleesbaar...

:)

Thanks, dude!

[ Voor 16% gewijzigd door Rataplan op 08-04-2003 14:56 ]


Journalism is printing what someone else does not want printed; everything else is public relations.


Verwijderd

Topicstarter
Rataplan schreef op 08 April 2003 @ 14:01:
Kan de startpost even worden hersteld? Dit topic is nu namelijk volstrekt onleesbaar...
startpost is bij deze herstelt, op deze manier werkt het iig zoals ik het wilde:

Java:
1
2
3
4
5
6
for(int day=0; day< 7; day++)
{
    DateTime dayofweek = DateTime.Now.AddDays((FirstDayOfWeek()*-1)+ day);
    Label labeltje = (Label)FindControl("lbDag"+day.ToString());
    labeltje.Text = dayofweek.ToString("dd");                   
}

[ Voor 5% gewijzigd door Verwijderd op 08-04-2003 14:57 ]


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Waarom doe je
Java:
1
(FirstDayOfWeek()*-1)+ day

en niet gewoon
Java:
1
day - FirstDayOfWeek()


en bij
Java:
1
day.ToString()

kan je het ToString() gewoon weglaten want een int wordt bij concatenatie met een string autmatisch geconverteerd ( Niet dat het fout is zoals je het nou doet hoor )

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Verwijderd

Topicstarter
rwb schreef op 08 april 2003 @ 15:01:
Waarom doe je
Java:
1
(FirstDayOfWeek()*-1)+ day

en niet gewoon
Java:
1
day - FirstDayOfWeek()


en bij
Java:
1
day.ToString()

kan je het ToString() gewoon weglaten want een int wordt bij concatenatie met een string autmatisch geconverteerd ( Niet dat het fout is zoals je het nou doet hoor )
ah, jah, dat eerste is inderdaad correct en waarom? :? geen flauw id...

tweede klopt ook maar ik zie daarin verder niet zo'n probleem.
Pagina: 1