Avatar billede swamboo Seniormester
30. december 2007 - 22:47 Der er 14 kommentarer og
1 løsning

Lettere måde at tildele textboxe samme værdi

Er der en lettere måde end dette?


                    Lbl_tilbud_husU.Text = "0.00";
                    Lbl_tilbud_husUI.Text = "0.00";
                    Lbl_tilbud_udestU.Text = "0.00";

Der er ret mange labels og checkboxe som skal 0-stilles...
Jeg tænkte på et & tegn eller lignende.
Avatar billede arne_v Ekspert
30. december 2007 - 22:51 #1
Ikke generelt.

Men i dit tilfælde måske:

            foreach(Control c in Controls)
            {
                if(c is TextBox)
                {
                    if(c.Name.IndexOf("Lbl_tilbud_") == 0)
                    {
                        ((TextBox)c).Text = "0.00";
                    }
                }
            }
Avatar billede driis Nybegynder
30. december 2007 - 23:20 #2
Eller, hav en liste der indeholder alle de tekstbokse, som har behov for nulstilling; og gennemløb dén, når du skal nulstille.
Avatar billede swamboo Seniormester
30. december 2007 - 23:26 #3
Jeg modtager følgende fejl:
Error    1    foreach statement cannot operate on variables of type 'System.Windows.Forms.Panel' because 'System.Windows.Forms.Panel' does not contain a public definition for 'GetEnumerator'
Avatar billede swamboo Seniormester
30. december 2007 - 23:27 #4
Hej Driis: Det har jeg allerede - men jeg tænkte at der nok var en smartere måde at gøre det på - arne v's ide ser meget ok ud...
Den sparrer mange linier - det har betydning når det er til PDA.
Avatar billede arne_v Ekspert
30. december 2007 - 23:41 #5
Hvordan ser din kode ud ?

Controls er en property på Form - ikke en Panel.
Avatar billede arne_v Ekspert
30. december 2007 - 23:42 #6
Hvis du allerede har dem i en ArrayList eller List<> er det vel nemt at bruge.
Avatar billede swamboo Seniormester
30. december 2007 - 23:48 #7
ok - da jeg skrev præcis som dig var der heller ikke nogen problemer - men der sker ikke noget - er det fordi de er på et panel?? (Panel hedder Pan_tilbud)
Avatar billede arne_v Ekspert
31. december 2008 - 00:11 #8
Ja prøv:

foreach(Control c in panelnavn.Controls)
Avatar billede driis Nybegynder
31. december 2008 - 00:18 #9
Men, hvis du allerede har en liste indeholdende dine textbokse, er det nok nemmere:

foreach(TextBox tb in yourListOfTextBoxes)
  tb.Text = "0.00";

Hvor "yourListOfTextBoxes" er en List<TextBox>.
Avatar billede swamboo Seniormester
31. december 2008 - 00:19 #10
Jeg har skrevet:
foreach (Control c in Pan_tilbud.Controls)
                    {
                        if (c is TextBox)
                        {
                            if (c.Name.IndexOf("Lbl_tilbud_") == 0)
                            {
                                ((TextBox)c).Text = "0.00";
                            }
                        }
                    }
Men ved den godt at det er alle som har tekst bag Lbl_tilbud_??
For der skrer bare ikke noget... Faktisk har jeg lige prøvet at skrive hele navnet på en af text-boxene, og der sker ikke noget (men heller ingen fejl)
Avatar billede arne_v Ekspert
31. december 2008 - 00:48 #11
Prøv lige:

oreach (Control c in Pan_tilbud.Controls)
                    {
                        if (c is Label)
                        {
                            if (c.Name.IndexOf("Lbl_tilbud_") == 0)
                            {
                                ((Label)c).Text = "0.00";
                            }
                        }
                    }
Avatar billede arne_v Ekspert
31. december 2008 - 00:49 #12
Lbl må betyde label - det er vel egentligt TextBox'e der matcher Label's der skal ændres eller ?
Avatar billede nwn Nybegynder
31. december 2008 - 14:27 #13
Kopier alle de der

Lbl_tilbud_husU.Text = "0.00";
Lbl_tilbud_husUI.Text = "0.00";
Lbl_tilbud_udestU.Text = "0.00";

ind i ganske almindelig tekstfil, vælg rediger, erstat og så erstat "" med "0.00"
Avatar billede swamboo Seniormester
31. december 2008 - 17:10 #14
Nej, Nej, Nej - Hvor dum kan man være???

Arne har jo fuldstændig ret - Det er jo LABELS ikke textboxe - hvad tænker jeg da på!!!!

Da jeg fik rettet den lille (betydningsfulde detalje) så virkede det jo helt efter hensigten. Endda lidt for godt - den rettede også et par labels som ikke skulle slettes, men et lille start bogstav løste det problem.

UNDSKYLD FEJLEN!!!

1000 tak, Arne V, for din hjælp! Du har ærligt fortjent en sjat point - er 15 nok, eller....???

Og tak for al jeres hjælp det forløbne år - GODT NYTÅR!!
Avatar billede arne_v Ekspert
31. december 2008 - 17:28 #15
fino fino
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester