tekst + int in een textbox

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • mobstaa
  • Registratie: Juli 2010
  • Niet online
hee mensen,
ik ben net begonnen met c# en ik moest een omreken machine bouwen, wat me aardig gelukt is tot nu toe. Het probleem is nu: ik heb 3 textboxen: Getal1, Getal2 en Uitkomst en in Getal 1 moet ik getallen invullen zoals 10 en dan kan ik dat om laten rekenen en het antwoord komt dan in de textbox Uitkomst, nu is bedoeling dat ik ook mijn naam moet kunnen in vullen in textbox: Getal1, en dat er dan komt te staan in een Response.Write ("Welkom naam"); maar ik kan geen tekst invoeren in die box de code:

code: filename
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btnBereken_Click(object sender, EventArgs e)
    {
        //Maak variabelen aan:
        int keuze;
        double Getal1;
        double Getal2;
        double Uitkomst;


        //Vul de variabelen en converteer ze:
        Getal1 = Convert.ToDouble(txtGetal1.Text);
        Getal2 = Convert.ToDouble(txtGetal2.Text);
        keuze = Convert.ToInt32(dlFunctie.SelectedValue);

        //Zeg dat als keuze = 1, label6 zichtbaar word.
        if (keuze == 1)
        {
            Label6.Visible = true;
            
        }


    }  

        
       protected void dlFunctie_SelectedIndexChanged(object sender, EventArgs e)
    {
        //Maak variabelen aan:
        int keuze;
        double Getal1;
        double Getal2;
        double Uitkomst = 0;

        //Vul de variabelen en converteer ze:
        Getal1 = Convert.ToInt32(txtGetal1.Text);
        Getal2 = Convert.ToInt32(txtGetal2.Text);
        keuze = Convert.ToInt32(dlFunctie.SelectedValue);


        //Als keuze = 2, dan optellen
        if (keuze == 2)
        {
            Uitkomst = Getal1 + Getal2;
            Label6.Visible = false;
        }
        //Als keuze = 3, dan txtGetal2 onbruikbaar maken en getal1 delen door 0,80.
        else if (keuze == 3)
        {
            txtGetal2.Enabled = false;
            Uitkomst = Getal1 / 0.80;
            Label6.Visible = false;
        }
        //Als keuze = 4, dan txtGetal2 onbruikbaar maken en getal1 vermenigvuldigen met 0,80.
        else if (keuze == 4)
        {
            txtGetal2.Enabled = false;
            Uitkomst = Getal1 * 0.80;
            Label6.Visible = false;
        }
        //Als keuze = 5, dan txtGetal2 onbruikbaar maken en getal1 vermenidgvuldigen met 2,54.
        else if (keuze == 5)
        {
            txtGetal2.Enabled = false;
            Uitkomst = Getal1 * 2.54;
            Label6.Visible = false;
        }
        
       //txtUitkomst.Text vullen met variabele: Uitkomst en converteren naar een string.
        txtUitkomst.Text = Convert.ToString(Uitkomst);

        
    }
}


dus in : txtGetal1 moet ook text kunnen maar ook een getal dat is eigenlijk het grote probleem, Alvast bedankt!

Nefit EnviLine 7400I AW 7 | Nefit HR 300 liter boiler | Nefit 50 liter buffervat | Nefit Moduline 1010H thermostaat | Buderus pomp | Home Assistant | BBQKees | Itho HRU 300R | Tibber


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Als je code post, gebruik dan code tags aub

Verder: kijk voor de gein eens naar int.Parse of int.TryParse of bijv. een regex. Ook kun je met char.IsNumber de string char-voor-char 'bekijken' en beoordelen of 't een geldig getal is. En dan zijn er nog -tig wegen die naar Rome leiden...

Vergeet ook niet de naam te escapen!

[ Voor 94% gewijzigd door RobIII op 13-09-2011 17:03 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Viper®
  • Registratie: Februari 2001
  • Niet online
In plaats van een aantal if's kan je beter voor een switch gaan (MSDN: Content not found

Acties:
  • 0 Henk 'm!

  • PaulZ
  • Registratie: Augustus 2004
  • Laatst online: 21-05-2024
Ik snap 't niet helemaal wat je nou wilt, maar als je nou gewoon aftest of de tekst in die textbox numeriek is of niet.
- Numeriek -> ga rekenen
- Niet-numeriek -> druk af
En als ik het niet goed heb begrepen, moet je jezelf even verduidelijken.

Vlinders moet je volgen, niet vangen...


Acties:
  • 0 Henk 'm!

  • Viper®
  • Registratie: Februari 2001
  • Niet online
Hou tevens rekening met foutafhandeling en verkeerde input. (lege waarde, verkeerde tekens)

gebruik hiervoor try/catch
voorbeeld:
MSDN: How to: Convert a string to an int (C# Programming Guide)

Acties:
  • 0 Henk 'm!

  • mobstaa
  • Registratie: Juli 2010
  • Niet online
ja try en catch moet ik nog gaan toevoegen aan, mijn code, maar het probleem is heel simpel eigenlijk: in txtGetal1 moet komen te staan: een naam en gewoon getallen, maar nu geeft hij hele tijd converteer problemen, want er zou dan iets van een if moeten komen zoals:
code:
1
2
3
4
 if(txtGetal1.Text = "Max")
{
     Resonse.Write ("Welkom,  Max");
}

Nefit EnviLine 7400I AW 7 | Nefit HR 300 liter boiler | Nefit 50 liter buffervat | Nefit Moduline 1010H thermostaat | Buderus pomp | Home Assistant | BBQKees | Itho HRU 300R | Tibber


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Heb je de reacties überhaupt gelezen :? Heb je de (vele) linkjes al eens doorgekeken :? Heb je überhaupt al a.d.h.v. de reacties iets geprobeerd :?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

mobstaa schreef op dinsdag 13 september 2011 @ 17:16:
ja try en catch moet ik nog gaan toevoegen aan, mijn code, maar het probleem is heel simpel eigenlijk: in txtGetal1 moet komen te staan: een naam en gewoon getallen, maar nu geeft hij hele tijd converteer problemen, want er zou dan iets van een if moeten komen zoals:
code:
1
2
3
4
 if(txtGetal1.Text = "Max")
{
     Resonse.Write ("Welkom,  Max");
}
Dat zou ik niet op deze manier doen, zoals mensen hier al eerder aangaven zou ik een TryParse methode toepassen of een vergelijking met een RegEx object.

TryParse voorbeeldje:
C#:
1
2
3
4
5
double resultaat;
if (!double.TryParse(txtGetal1.Text, out resultaat))
{
    Response.Write(string.Format("Welkom, {0}", txtGetal1.Text));
}


EDIT:
Was je er inmiddels al uitgekomen of niet?

[ Voor 3% gewijzigd door Verwijderd op 14-09-2011 19:13 ]


  • Amras
  • Registratie: Januari 2003
  • Laatst online: 16-09 20:15
Viper® schreef op dinsdag 13 september 2011 @ 17:02:
Hou tevens rekening met foutafhandeling en verkeerde input. (lege waarde, verkeerde tekens)

gebruik hiervoor try/catch
voorbeeld:
MSDN: How to: Convert a string to an int (C# Programming Guide)
Try/catch voor verkeerde input lijkt mij geen goede keuze. Je gebruikt exceptions voor exceptionele flow, wat verkeerde invoer van een gebruiker naar mijn idee niet is; dit zal regelmatig voor gaan komen. Het gebruik van de TryParse methoden (of een Regex bij complexere controles) lijkt mij een betere optie.

  • mobstaa
  • Registratie: Juli 2010
  • Niet online
Heel erg bedankt voor alle hulp, ik ben er nu wel uitgekomen met de TryParse, er mag van mij een slotje op:)

Nefit EnviLine 7400I AW 7 | Nefit HR 300 liter boiler | Nefit 50 liter buffervat | Nefit Moduline 1010H thermostaat | Buderus pomp | Home Assistant | BBQKees | Itho HRU 300R | Tibber


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Een slotje is niet nodig op een topic als je je oplossing hebt. Zie daarvoor ook onze faq betreffende topiceinde.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • mobstaa
  • Registratie: Juli 2010
  • Niet online
ja gelezen , bedankt voor de informatie, en de hulp van iedereen

Nefit EnviLine 7400I AW 7 | Nefit HR 300 liter boiler | Nefit 50 liter buffervat | Nefit Moduline 1010H thermostaat | Buderus pomp | Home Assistant | BBQKees | Itho HRU 300R | Tibber

Pagina: 1