Hallo zusammen,
ich codiere gerade im Visual Studio 2019 in WPF mit der Computersprache C# eine Stoppuhr. Diese soll in einer 24-Stunden-Anzeige dargestellt werden, wo ich auch die Uhr stoppen und wieder laufen lassen kann. Das klappt alles.
Bis ich auf dieses Problem gestoßen bin:
Ich soll noch Zwischenzeiten der gelaufenen Zeit darstellen, die rechts in einer ListBox erscheinen sollen. Daneben noch ein Button namens "Zurücksetzen", der die gesamt gelaufene Zeit auf 0 zurücksetzt.
So sollte das Ergebnis aussehen:
swoutput.png (434×296) (sourcecodester.com)
(in dem Fall -> Mark = Zwischenzeit)
Bei mir stellt er es aber nicht so dar.
Dies ist hier mein Quelltext in Visual Studio 2019:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Threading;
namespace Wpf_Stoppuhr
{
/// <summary>
/// Interaktionslogik für MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
DispatcherTimer timer = new DispatcherTimer();
private int zs = 0, sek = 0, min = 0, h = 0;
private bool pruef = true;
public MainWindow()
{
InitializeComponent();
timer.Tick += new EventHandler(timer_Tick);
timer.Interval = new TimeSpan(0, 0, 0, 0, 10);
L_Ausgabe.Content = "0 : 0 : 0 : 0";
}
private void timer_Tick(object sender, EventArgs e)
{
zs++;
if (zs == 10)
{
sek++;
zs = 0;
}
else if (sek == 60)
{
sek = 0;
min++;
}
else if (min == 60)
{
min = 0;
h++;
}
else if (h == 24)
{
h = 0;
}
L_Ausgabe.Content = h + " : " + min + " : " + sek + " : " + zs;
}
private void B_Start_Click(object sender, EventArgs e)
{
if (pruef)
{
timer.Start();
B_Start.Content = "Start";
pruef = false;
}
else
{
timer.Stop();
B_Start.Content = "Stopp";
pruef = true;
}
}
private void B_zwz_Click_1(Object sender, EventArgs e)
{
ListBox1.Items.Add(L_Ausgabe.Content);
}
private void B_zurueck_Click(Object sender, EventArgs e)
{
L_Ausgabe.Content = " 0: 0 :0 : 0 ";
ListBox1.Items.Clear();
timer.Stop();
}
}
}
- B_Start = Start Knopf
- ListBox1 = die Listbox
- L_Ausgabe = Label für die Zeit
- B_zurueck = Button fürs zurücksetzen
- B_zwz = Button für die Zwischenzeit
Ich wäre sehr dankbar für eine Lösung. :)
Mit freundlichen Grüßen
Cynix
Danke für deine Hilfe, leider kommt ich trotzdem nicht ganz weiter. Im Folgenden wäre mein Code, mit dem ich in Abhängigkeit der Auswahl der Combobox eine Zahl in das Feld single_counter schreiben möchte. der button ist dazu da, jede zahl um +1 zu erhöhen. drücke ich auf den buttonzur erhöhung der zahl um +1, wird die neue zahl jedoch nicht gleich angeziegt/aktualisiert, genau das möchte ich aber (ohne Button events,.)
namespace Display
{
/// <summary>
/// Interaktionslogik für MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
int[] a = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
private void TextBox_TextChanged1(object sender, TextChangedEventArgs e)
{
}
private void TextBox_TextChanged3(object sender, TextChangedEventArgs e)
{
}
private void change(object sender, EventArgs e)
{
if (combobox.Text == "Mitarbeiter 1") single_counter.Content = Convert.ToString(a[0]);
if (combobox.Text == "Mitarbeiter 2") single_counter.Content = Convert.ToString(a[1]);
if (combobox.Text == "Mitarbeiter 3") single_counter.Content = Convert.ToString(a[2]);
if (combobox.Text == "Mitarbeiter 4") single_counter.Content = Convert.ToString(a[3]);
if (combobox.Text == "Mitarbeiter 5") single_counter.Content = Convert.ToString(a[4]);
if (combobox.Text == "Mitarbeiter 6") single_counter.Content = Convert.ToString(a[5]);
if (combobox.Text == "Mitarbeiter 7") single_counter.Content = Convert.ToString(a[6]);
if (combobox.Text == "Mitarbeiter 8") single_counter.Content = Convert.ToString(a[7]);
if (combobox.Text == "Mitarbeiter 9") single_counter.Content = Convert.ToString(a[8]);
if (combobox.Text == "Mitarbeiter 10") single_counter.Content = Convert.ToString(a[9]);
if (combobox.Text == "Mitarbeiter 11") single_counter.Content = Convert.ToString(a[10]);
if (combobox.Text == "Mitarbeiter 12") single_counter.Content = Convert.ToString(a[11]);
int b = a[0] + a[1] + a[2] + a[3] + a[4] + a[5] + a[6] + a[7] + a[8] + a[9] + a[10] + a[11];
counter.Text = Convert.ToString(b);
}
private void button_Click(object sender, RoutedEventArgs e)
{
int b;
for(b=0; b<12; b++)
{
a[b] = a[b] + 1;
}
}
}
}