Was genau mache ich falsch C#?

...komplette Frage anzeigen Form1 - (programmieren, Visual Studio, C Sharp)

6 Antworten

Du erstellst doch jedes mal beim Klick eine neue Form wobei du in der einen Form nur etwas ändern willst. Warum hast du überhaupt die Klasse Hundert wenn die Methoden innerhalb der Klasse sein könnten in der du die ButtonKlick Methoden hast? Versuch mal einfach die 3 Methoden von der Hundert Klasse in die mit den ButtonKlick Methoden zu packen und guck ob es dann geht.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Mafiaca13
20.05.2016, 16:27

Danke. Soweit war ich auch schon, aber ich möchte gerne mehrere Klassen verwenden.

0

Wenn du noch die Hunderter brauchst ( z.B. die noch nen attribut haben )...:

Ich hätte da jetzt einfach nen stack gemacht.

Heißt:

class MoneyStack : Form1{

// Hier Stack (Array) für 100
// 50
// 20
// 10

// hier je nach art des scheins entsprechend
// später das array und das objekt des geldscheines (h)
// übergeben

 public void addMoney (array , moneyValue){
// hier das objekt auf den stack pushen
}

public void removeMoney (array, moneyvalue){
// hier das objekt vom stack "poppen"
}

public int getStackValue (array){
// hier die anzahl der objekte zählen und ausgeben
}

// dann je nachdem welcher button geklickt wird
// ein objekt erstellen und zum stack zufügen

public void plusButtonClicked100 (event etc.){
moneyValue100 mv100 = new moneyValue100();
addMoney (100stack, mv100);
updateLabel();
}

// hier das label updaten
public void updateLabel (){
// z.B. lbl100.text = getStackValue (100stack);
}

}
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Odorwyn
20.05.2016, 16:38

Bin allerdings kein C# experte. So hätte ich es in Java gemacht.
Und diese beiden Sprachen sind sich ja relativ ähnlich. :)

0

Das ist zwar jetzt schon Monate her, aber ich möchte meinen Senf nochmal dazu geben. Ich hätte es so gemacht:

using System.Windows.Forms;
using System;
using System.Windows;

namespace Application
{
class Hundert
{
private static int HundertNoten = 0; // Startwert als Eigenschaft in der Hundert-Klasse

public Label lblAnzahl100 = new Label(); // Steht meistens im Designer
// ... lblAnzahl100.Eigenschaft = ...;

public void HundertPlus(int increment)
{
HundertNoten += increment; // Erhöhung um increment
UpdateLabel(); // Direkt im Anschluss automatisch das Label aktualisieren, damit man beim Aufruf eine Codezeile spart
}

public void HundertMinus(int decrement)
{
HundertNoten -= decrement; // Verringerung um decrement
UpdateLabel(); // Direkt im Anschluss automatisch das Label aktualisieren, damit man beim Aufruf eine Codezeile spart
}

public void UpdateLabel()
{
lblAnzahl100.Text = Convert.ToString(HundertNoten);
}
}

class Form1 : Form
{
Hundert h = new Hundert(); // Einmaliges Erstellen der Hundert-Instanz

public Button btnMinus100 = new Button(); // Steht meistens im Designer
// ... btnMinus100.Eigenschaft = ...;

public void btnPlus100_Click(object sender, EventArgs e)
{
h.HundertPlus(1); // "1" im Argument als Erhöhung von HundertNoten um 1
}

//Button Wechsel 100 Fr. minus und 100 Fr. Diagramm minus
private void btnMinus100_Click(object sender, EventArgs e)
{
h.HundertMinus(1); // "1" im Argument als Verringerung von HundertNoten um 1
}
}
}

Hoffe, es hilft trotzdem, wenn nicht, dann halt nicht.

Dein YSwaggerY

Antwort bewerten Vielen Dank für Deine Bewertung

Du kannst auch einfach anstatt

HundertNoten = HundertNoten + 1;
HundertNoten++;

schreiben.

Antwort bewerten Vielen Dank für Deine Bewertung

Woher sollen wir wissen was falsch ist wenn du uns nicht sagst was schief läuft? :D

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Mafiaca13
20.05.2016, 16:15

Bei dem lblAnzahl100 ändert sich die Zahl nicht, wenn ich auf den jeweiligen Button klicke.

0

pIch ignoriere jetzt mal deinen Code, sondern orietiere mich einfach an deiner Frage:

Wenn ich auf den btnPlus100 klicke solter das lblAnzahl100 eine 1
anzeigen. wenn ich nochmal draufklicke eine 2 


int hundert = 0;
private void btnMinus100_Click(object sender, EventArgs e){hundert++; //erhöht bei jedem Klick die Variable hundert um +1 lblAnzahl100.Text = Convert.ToString(hundert);}



btnMinus100 soll jeweils beim Klick eins abgezogen werden.

Dazu einfach den gleichen Code wie für das Hinzuzählen für den Button btnPlus100, nur statt hundert++; verwendest du hundert--;





Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Mafiaca13
20.05.2016, 16:23

Danke. Soweit war ich allerdings auch schon.

Ich möchte gerne mehrere Klassen verwenden. So als Übung.

0

Was möchtest Du wissen?