| Autor | Beitrag | 
| DeStein Hält's aus hier
 Beiträge: 10
 
 WIN 7
 
 
 | 
Verfasst: Sa 16.11.13 18:59 
 
Hallo 
 Ich habe ein Problem und zwar dass ich ein button habe der eigentlich bei jedem klick dem label +1 hinzufügt aber es geht nur einmal.
 Hier mein code:
 		Moderiert von                       C#-Quelltext 
 									| 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:
 
 | using System;using System.Collections.Generic;
 using System.ComponentModel;
 using System.Data;
 using System.Drawing;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using System.Windows.Forms;
 
 namespace WindowsFormsApplication4
 {
 public partial class Form1 : Form
 {
 public Form1()
 {
 InitializeComponent();
 }
 
 private void button1_Click_1(object sender, EventArgs e)
 {
 int Zähler = 0;
 int ergebnis = 0;
 Zähler = 0;
 ergebnis = Zähler + 1;
 label1.Text = ergebnis.ToString();
 }
 }
 |   Christian S.: C#-Tags hinzugefügtModeriert von  Christian S.: Topic aus WinForms verschoben am Sa 16.11.2013 um 19:25 | 
|  | 
| Christian S. 
          Beiträge: 20451
 Erhaltene Danke: 2264
 
 Win 10
 C# (VS 2019)
 
 | 
Verfasst: Sa 16.11.13 19:24 
 
Hallo und   !
 Du hast Zähler  als lokale Variable der Methode deklariert und füllst sie bei jedem Mal neu mit dem Wert 0 . Und danach addierst Du 1 . Du rechnest also jedes Mal 0 + 1 , das ergibt natürlich immer 1 .
 Du musst die Zählervariable als Feld der Form-Klasse deklarieren und den Anfangswert 0 nur einmal (am Besten direkt bei der Deklaration) zuweisen. In der Klick-Methode erhöhst Du den Wert dieses Feldes dann immer um 1  und gibst es aus. Die Variable ergebnis  brauchst Du dann nicht mehr.
 Viele Grüße
 Christian_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
 Für diesen Beitrag haben gedankt: DeStein
 | 
|  | 
| DeStein  Hält's aus hier
 Beiträge: 10
 
 WIN 7
 
 
 | 
Verfasst: Sa 16.11.13 19:59 
 
Danke schon mal für die Antwort
aber ich programmiere jetzt erst seit zwei Wochen und wollte fragen wie man das macht
 | 
|  | 
| Christian S. 
          Beiträge: 20451
 Erhaltene Danke: 2264
 
 Win 10
 C# (VS 2019)
 
 | 
Verfasst: Sa 16.11.13 23:01 
 
Hallo!
 Also, als Feld bezeichnet man eine Variable, die nicht zu einer speziellen Methode gehört, sondern zur Instanz einer Klasse. Wenn ich also eine Klasse habe, die so aussieht:
 		                       C#-Quelltext 
 									| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 
 | public partial class Form1 : Form {private int feld = 42;
 public void ErhöheUmEins()
 {
 feld += 1;
 }
 
 public void GebeAus()
 {
 label1.Text = feld.ToString();
 }
 }
 |  Dann sieht man schon, dass feld  nicht in einer der Methoden deklariert ist, sondern zur gesamten Klasse gehört. Beide Methoden greifen auf dieses Feld zu, was die eine Methode mit dem Feld macht, "sieht" auch die andere Methode.
 Grüße
 Christian_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
 Für diesen Beitrag haben gedankt: DeStein
 | 
|  | 
| DeStein  Hält's aus hier
 Beiträge: 10
 
 WIN 7
 
 
 | 
Verfasst: So 17.11.13 03:50 
 
Bei mir funktioniert des nicht
ich hab des eingefügt und wenn ich des starte und auf den button klicke passiert nichts
 | 
|  | 
| Christian S. 
          Beiträge: 20451
 Erhaltene Danke: 2264
 
 Win 10
 C# (VS 2019)
 
 | 
Verfasst: So 17.11.13 10:12 
 
Nur mit Einfügen geht das auch nicht. Du musst schon noch verstehen, was ich geschrieben habe und dann anwenden. Wenn Du Fragen zum Verständnis hast, kannst Du gerne hier fragen, aber einen fertigen Quelltext, den Du ohne Eigenleistung übernehmen kannst, bekommst Du von mir nicht. _________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
 Für diesen Beitrag haben gedankt: DeStein
 | 
|  | 
| Th69 
          
  Beiträge: 4800
 Erhaltene Danke: 1059
 
 Win10
 C#, C++ (VS 2017/19/22)
 
 | 
Verfasst: So 17.11.13 10:12 
 
Hallo,
 der Code von Christian ist ja nur ein Beispiel. Für deinen Code hat Christian dir ja schon geschrieben, daß du die Variable 'Zähler' innerhalb der Klasse hinschreiben mußt und daß du dann diese Variable erhöhen mußt (und nicht die Variable 'ergebnis').
 Wenn du damit immer noch nicht klarkommst, dann poste nochmal deinen geänderten Code.
 Edit: Guten Morgen Christian - wußte nicht, daß du gleichzeitig postest   Für diesen Beitrag haben gedankt: DeStein
 | 
|  | 
| DeStein  Hält's aus hier
 Beiträge: 10
 
 WIN 7
 
 
 | 
Verfasst: So 17.11.13 17:46 
 | 
|  | 
| Marc. 
          Beiträge: 1876
 Erhaltene Danke: 129
 
 Win 8.1, Xubuntu 15.10
 
 
 | 
Verfasst: So 17.11.13 18:01 
 Für diesen Beitrag haben gedankt: DeStein
 | 
|  | 
| DeStein  Hält's aus hier
 Beiträge: 10
 
 WIN 7
 
 
 | 
Verfasst: So 17.11.13 22:09 
 
Des Funktioniert jetzt bei mir und ich hab noch dazu gemacht das wenn ich meinen 2. button klicke es 1 vom ersten abzieht wie kann man machen dass das erste nicht unter null geht 
 Hier mein Code:
 												| 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:
 
 | namespace WindowsFormsApplication8{
 public partial class Form1 : Form
 {
 public Form1()
 {
 InitializeComponent();
 }
 
 private void button1_Click(object sender, EventArgs e)
 {
 ErhöheUmEins();
 GebeAus();
 }
 private int Zähler = 1;
 public void ErhöheUmEins()
 {
 Zähler += 1;
 }
 public void GebeAus()
 {
 
 label1.Text = Zähler.ToString();
 }
 
 private void button2_Click(object sender, EventArgs e)
 {
 ErhöheUmEins2();
 GebeAus2();
 }
 private int Zähler2 = 1;
 public void ErhöheUmEins2()
 {
 Zähler2 += 4;
 Zähler -= 1;
 }
 public void GebeAus2()
 {
 
 label2.Text = Zähler2.ToString();
 label1.Text = Zähler.ToString();
 }
 }
 }
 |  | 
|  | 
| Th69 
          
  Beiträge: 4800
 Erhaltene Danke: 1059
 
 Win10
 C#, C++ (VS 2017/19/22)
 
 | 
Verfasst: Mo 18.11.13 13:37 
 
Hallo,
 die if-Anweisung solltest du aber schon kennen. Um die Grundlagen von C# selbst zu lernen, ist es besser, erst einmal einfache Konsolenanwendungen zu erstellen - solange bis du alle (bzw. die meisten) C#-Schlüsselwörter kennst; erst dann solltest du zur GUI-Programmierung wechseln.
 Für diesen Beitrag haben gedankt: DeStein
 | 
|  | 
| DeStein  Hält's aus hier
 Beiträge: 10
 
 WIN 7
 
 
 | 
Verfasst: Mo 18.11.13 18:17 
 
Ich habe es mit if versucht aber weiß nicht wie ich das machen soll das es wenn es richtig ist etwas macht und wenn nicht dann nicht
 												| 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:
 
 | namespace WindowsFormsApplication8{
 public partial class Form1 : Form
 {
 public Form1()
 {
 InitializeComponent();
 }
 
 private void button1_Click(object sender, EventArgs e)
 {
 ErhöheUmEins();
 GebeAus();
 }
 private int Zähler = 0;
 
 
 public void ErhöheUmEins()
 {
 Zähler += 1;
 }
 public void GebeAus()
 {
 
 label1.Text = Zähler.ToString();
 }
 
 private void button2_Click(object sender, EventArgs e)
 {
 ErhöheUmEins2();
 GebeAus2();
 }
 private int Zähler2 = 1;
 
 public void ErhöheUmEins2()
 {
 Zähler2 += 4;
 Zähler -= 1;
 }
 public void GebeAus2()
 {
 
 label2.Text = Zähler2.ToString();
 label1.Text = Zähler.ToString();
 }
 private void Ende()
 {
 bool bedingung = Zähler > 0;
 
 if (bedingung == true)
 {
 
 }
 
 if (bedingung == false)
 {
 
 }
 }
 }
 }
 |  | 
|  | 
| papa69 
          Beiträge: 79
 Erhaltene Danke: 23
 
 Win 10, Ubuntu
 C#, Java, C
 
 | 
Verfasst: Mo 18.11.13 20:40 
 
deine "Ende()-Methode" kann so nicht funktionieren...
 mittels if prüfst du schon automatisch, ob etwas wahr ist (oder eben nicht)
 siehe hier openbook.galileocomp.../kap12.htm#Xxx958418 und/oder hier msdn.microsoft.com/d...ibrary/676s4xab.aspx also machst du 
 		                       C#-Quelltext 
 									| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 
 | if (bedingung < 0 ){
 tuDies();
 }
 else if (bedingung == 0 )
 {
 tuWasAnderes();
 }
 else        {
 tuEsNicht();
 }
 |  good luck   _________________ Daniel Bauer
 ... fatal ist nur, wenn sich das Licht am Ende des Tunnels als entgegenkommender ICE entpuppt ...
 Für diesen Beitrag haben gedankt: DeStein
 | 
|  | 
| DeStein  Hält's aus hier
 Beiträge: 10
 
 WIN 7
 
 
 | 
Verfasst: Mi 20.11.13 14:59 
 
Ich habe das mit if jetzt geschafft und wollte fragen wie man die schritte die der zähler hoch geht mit einem button ändern kannund wie man int zu string machen kann
 												| 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:
 
 | namespace WindowsFormsApplication8{
 public partial class Form1 : Form
 {
 public Form1()
 {
 InitializeComponent();
 }
 
 private void button1_Click(object sender, EventArgs e)
 {
 ErhöheUmEins();
 GebeAus();
 }
 private int Zähler = 0;
 
 
 public void ErhöheUmEins()
 {
 Zähler += 1;
 }
 public void GebeAus()
 {
 
 label1.Text = Zähler.ToString();
 }
 
 private void button2_Click(object sender, EventArgs e)
 {
 if (Zähler > 0)
 {
 ErhöheUmEins2();
 }
 GebeAus2();
 }
 private int Zähler2 = 1;
 
 public void ErhöheUmEins2()
 {
 Zähler2 += 4;
 Zähler -= 1;
 }
 public void GebeAus2()
 {
 
 label2.Text = Zähler2.ToString();
 label1.Text = Zähler.ToString();
 }
 
 
 
 public void button3_Click(object sender, EventArgs e)
 {
 if (label2.Text = 100)
 {
 
 }
 }
 
 
 }
 }
 |  | 
|  | 
| Th69 
          
  Beiträge: 4800
 Erhaltene Danke: 1059
 
 Win10
 C#, C++ (VS 2017/19/22)
 
 | 
Verfasst: Mi 20.11.13 15:36 
 
Hallo DeStein,
 ich schließe mal dieses Thema, da die eigentliche Frage ja beantwortet wurde.
 Deine beiden anderen Fragen lassen sich mit jedem Grundlagenbuch (wie das schon erwähnte OpenBook über C#) oder aber durch Suche im Forum (bzw. Internet) lösen.
 | 
|  |