Benutzer mit den meisten Antworten
Windows Forms Application Anfänger

Frage
-
Hallo, an alle!
Ich mache erste Schritte in Microsoft Visual C# 2008 und im Programmieren an sich und brauche eine Hilfe in folgender Sache.
Mit Windows Forms Application soll, wenn man auf ein button klickt, in listBox eine Lösung für eine Rechenaufgabe ausgegeben werden. Bis jetzt habe ich folgendes gemacht:namespace
WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
int x = 3;
int y = 2;
int z = x + y;
}
private void button1_Click(object sender, EventArgs e)
{
listBox1.Items.Add("2");
}
}
}
Es soll aber natürlich keine 2 ausgegeben werden, sondern Werte für x+y. Ich weiß aber weder ob man listBox mit button in diesem Fall benutzt oder ob für mathematische Rechnungen nicht eine extra Komponente aus toolbox gibts. Vielleicht muss man auch statt Items.Add() was anderes nehmen. Bitte hilft mir dabei, vielen Dank im vraus.
Antworten
-
Hallo Leute!
Ich habe jetzt mit Hilfe die Sache doch gelöst. Aber wenn man auf addierenButton mehrmals klickt, dann kommt das Ergebnis mehrmals untereinander. Weißt da vielleicht einer den Rat, wie man den button so einstellen kann, das die Ausgabe nur einmal vorkommt?
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void addierenButton_Click(object sender, EventArgs e)
{
int ersteZahl = int.Parse(ersteZahlTextBox.Text);
int zweiteZahl = int.Parse(zweiteZahlTextBox.Text);
int ergebnis = ersteZahl + zweiteZahl;
ergebnisseListBox.Items.Add(ergebnis);
}
private void Leerenbutton_Click(object sender, EventArgs e)
{
ergebnisseListBox.Items.Clear();
}
private void ersteZahlTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar))
{
e.Handled = true;
}
}
}
}- Als Antwort markiert Robert Breitenhofer Mittwoch, 29. Juli 2009 13:56
-
Einfach vor dem Anzeigen des neuen Ergebnisses per ListBox.Clear() die ObjectCollection leeren.
- Als Antwort markiert Robert Breitenhofer Mittwoch, 29. Juli 2009 13:56
Alle Antworten
-
Das geht dann so:
listBox1.Items.Add(z);
(z muss aber außerhalb des Konstruktors [public Form1(){...}] deklariert werden, ansonsten kannst du außerhalb des Konstruktors auch nicht darauf zugreifen.) -
Das geht dann so:
listBox1.Items.Add(z);
(z muss aber außerhalb des Konstruktors [public Form1(){...}] deklariert werden, ansonsten kannst du außerhalb des Konstruktors auch nicht darauf zugreifen.)
Danke für deine Hilfe. Ich muss aber leider sagen, dass ich in diesem Fall gar nicht weiß, wo ich das sonst deklarieren soll. Ich klicke zum Beispiel bei der Form1.cs [Design] auf den button und dann in Form1.cs schreibe ich den Kode rein in geschweifte Klammer
private void button1_Click(object sender, EventArgs e)
{
}
der wird aber gar nicht ausgefürt, weil der Kode für ein anderes Programm gedacht ist.
Ich habe z.B eine andere Variante, die mir besser passt
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
double a, b;
Console.WriteLine("a eingeben: ");
string eingabe = Console.ReadLine();
a = double.Parse(eingabe);
Console.WriteLine("b eingeben: ");
eingabe = Console.ReadLine();
b = double.Parse(eingabe);
Console.Write("Antwort ist = ");
Console.Write(a + b);
Console.ReadKey(false);
}
}
}
nur dieser Kode funktioniert bei Console Application und ich weiß es nicht wie ich so ein ähnliches Kode in Windows Forms einbinden kann, damit beim klicken auf button in listBox man den gleichen Effekt hat. Ich werde dir sehr dankbar sein, wenn du mir da weiter helfen kannst. -
Hallo Leute!
Ich habe jetzt mit Hilfe die Sache doch gelöst. Aber wenn man auf addierenButton mehrmals klickt, dann kommt das Ergebnis mehrmals untereinander. Weißt da vielleicht einer den Rat, wie man den button so einstellen kann, das die Ausgabe nur einmal vorkommt?
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void addierenButton_Click(object sender, EventArgs e)
{
int ersteZahl = int.Parse(ersteZahlTextBox.Text);
int zweiteZahl = int.Parse(zweiteZahlTextBox.Text);
int ergebnis = ersteZahl + zweiteZahl;
ergebnisseListBox.Items.Add(ergebnis);
}
private void Leerenbutton_Click(object sender, EventArgs e)
{
ergebnisseListBox.Items.Clear();
}
private void ersteZahlTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar))
{
e.Handled = true;
}
}
}
}- Als Antwort markiert Robert Breitenhofer Mittwoch, 29. Juli 2009 13:56
-
Einfach vor dem Anzeigen des neuen Ergebnisses per ListBox.Clear() die ObjectCollection leeren.
- Als Antwort markiert Robert Breitenhofer Mittwoch, 29. Juli 2009 13:56
-
Hallo Novaluna,
So wie ferdiku gesagt hatte musst Du vor dem Anzeigen des neuen Ergebnisses per ListBox.Items.Clear() die ObjectCollection leeren:
private void addierenButton_Click(object sender, EventArgs e) { int ersteZahl = int.Parse(ersteZahlTextBox.Text); int zweiteZahl = int.Parse(zweiteZahlTextBox.Text); int ergebnis = ersteZahl + zweiteZahl; ergebnisseListBox.Items.Clear(); ergebnisseListBox.Items.Add(ergebnis); }
Robert
Grüße,