[C#] Rekenmachine in form met een methode.

Status
Niet open voor verdere reacties.

jimowns

Gebruiker
Lid geworden
2 sep 2006
Berichten
341
Ik zit nu weeral in de problemen zoals ik al gedacht had.

ik ben bezig met een oefening in de boek van visual C# 2008- de basis.
Er wordt gevraagd voor een rekenmachine te maken die kan optellen.
dit moest ik doen in een methode.

De methode heb ik gemaakt.
en deze klopt normaal gezien.
Code:
namespace WindowsFormsApplication1
{
    public class Optellen
    {
        public double Bereken(double a, double b)
        {
            return a + b;
        }
    }
}

Maar nu als ik naar oefening 3.2 ga, wordt er gevraagd voor een Form te maken met daarin 2 textboxen en 1 button met de naam Plus en een Label die de resultaat moet weergeven.

Dit heb ik ook al gemaakt.

Maar nu vraagd hij, voor de methode te laten uitvoeren in de Form applicatie.
Zodat je op textbox1 een cijfer ingeeft en in textbox2 ook en wanneer je op button "plus" drukt dat de uitkomst in label verschijnt.

Maar nu weet ik totaal niet hoe ik dit kan doen.
Kan iemand mij hierbij helpen.
Ik wil dit alleen kunnen, dus aub geen codes geven ;)


Mvg, Jim
 
Laatst bewerkt:
Ik heb ook geen idee hoe dit in Visual C# werkt, maar om een probleem als deze op te lossen denk ik op de volgende manier:

Ik moet een waarde uit een tekstbox kunnen halen, dit zoek ik op op Google.
Ik moet een waarde in een tekstbox kunnen stoppen, dit zoek ik op op Google.
Misschien is de waarde van een tekstbox opgeslagen als een string en moet ik deze converteren naar een integer, dit zoek ik op op Google.
Ik moet bij het klikken op een knop een functie uitvoeren, wat waarschijnlijk een OnClick event heet, dit zoek ik op op Google.

En dan zal de code er ongeveer zo uit gaan zien:
Code:
TextBox getal1;
TextBox getal2;
TextBox resultaat;
Button plus;

public void plusOnClick() {
    int a = StringToInt(getal1.value);
    int b = StringToInt(getal2.value);
    resultaat.value = IntToString(a+b);
}

Succes :).
 
Laatst bewerkt:
Om iets preciezer te zijn:

[cpp]
try
{
int uitkomst = int.parse(textbox1.text) + int.parse(textbox2.text);
labeluitkomst.text = uitkomst.tostring();
}
catch (Exception ex) { /* eventueel nog foutmelding tonen */ }
[/cpp]
 
Om iets preciezer te zijn:

[cpp]
try
{
int uitkomst = int.parse(textbox1.text) + int.parse(textbox2.text);
labeluitkomst.text = uitkomst.tostring();
}
catch (Exception ex) { /* eventueel nog foutmelding tonen */ }
[/cpp]

de code brgrijp ik niet goed, maar klopt dit wat ik zeg ;)

de try en catch intructie is dus hetzelfde princiepe van if en else :)
maar waarom gebruik je int.parse() , gaat dit ik ook met int32.parse() ?
deze heb ik proberen op te zoeken maar dat had te maken met bits of dit klopt, en de parse is voor een integer naar een string om te zetten.
Maar de ToString vindt ik niet zo simpel op google. maar waarvoor dient dit?

Sorry voor al mijn vragen over C# codes, maar ben nog maar een klein beginnertje ;)

Mvg, Jim
 
De Int.Parse() functie wordt gebruikt om een String (de invoer van je textbox) om te zetten naar een integer. Ook had de functie TryParse() gebruikt kunnen worden, die geeft volgens mij geen exception.

Daarnaast wordt de "ToString" aangeroepen, om de uitkomst (die een integer is) om te zetten naar een string (label kan alleen strings weergeven). Zoals de functienaam al zegt: To String (Naar String).

Overigens zou ik er een float/double van maken, maar dat is maar net of je komma getallen toestaat ;)

Edit: de try-catch is niet helemaal een if-else. Bij een if-else wordt óf de code in het if-gedeelte uitgevoerd, óf de code in het else-gedeelte (vandaar de if-else). Een try-catch voert altijd het stuk in de try uit (vandaar ook try : probeer). Mocht iets daarin een exception opgooien, dan wordt die opgevangen in de catch (en gaat de code vanaf daar weer verder).

Voorbeeld:
[cpp]
try {
int a = 10;
int b = 20;
int c = a * b;
//Forceer exception: delen door 0.
int d = 100 / 0;

//Hier zal je programma nooit komen.
Console.WriteLine ("Uitkomst is " + c);
} catch (Exception e) {
Console.WriteLine ("Exception caught");
}

//Hier gaat je programma verder.
[/cpp]
 
Laatst bewerkt:
Je zegt het antwoord eigenlijk zelf.. Wanneer je op de 'plus' button drukt moet die methode aangesproken worden die je daar gemaakt hebt. Deze methode heeft 2 parameters van het type 'double'. Je moet dus het volgende doen:
  • 3 variablen aanmaken van het type double (bv. getal1, getal2 en uitkomst)
  • getal1 houdt de inhoud van de ene textbox, en getal 2 van de andere textbox
  • U methode aanspreken mbv van u net gemaakte variablen
  • uitkomst houdt de uitkomst u methode bij..

Nu kan zit de uitkomst van u methode in de variable uitkomst. Deze kan je nu in uw label stoppen!

(Ik neem aan dat je nog niet moet controleren op inhoud van de tekstboxen (als je een string ingeeft, loopt het programma vast). Vul gewoon de juiste invoer in, later zal je wel leren hoe je moet controleren op invoer)!

Groeten,

Dieter
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan