WPF Zufallsgenerator GUI?
Guten Tag,
ich habe probiert einen Zufallsgenerator in WPF mit einer GUI zu erstellen.
Ich habe zwei Text boxen wo jeweils die niedrigste und höchste Zahl eingegeben werden soll, einen Button wenn man den drückt in lbl2(Label) die Zufallszahl ausgegeben werden. Allerdings erkennt er zahl1 und zahl2 nicht obwohl ich sie mit "return" wieder gegeben habe. Sonst zeigt er mir aber keine Probleme an.
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;
namespace WpfApp1
{
/// <summary>
/// Interaktionslogik für MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public int txtbox1_TextChanged(object sender, TextChangedEventArgs e)
{
int zahl1 = Convert.ToInt32(txtbox1.Text);
return zahl2;
}
public int txtbox2_TextChanged(object sender, TextChangedEventArgs e)
{
int zahl2 = Convert.ToInt32(txtbox1.Text);
return zahl2;
}
private void btn1_Click(object sender, RoutedEventArgs e)
{
Random zufallszahl = new Random();
lbl2.Content = zufallszahl.Next(zahl1, zahl2);
}
}
}
1 Antwort
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer, programmieren, Windows Presentation Foundation
Event Handler haben keinen Rückgabetyp. Setze den Wert für das Label stattdessen direkt in der Methode.
public void txtbox1_TextChanged(object sender, TextChangedEventArgs e)
{
int zahl1 = Convert.ToInt32(txtbox1.Text);
lbl2.Content = zahl2;
}
regex9
06.11.2021, 23:59
@Irrelevant20986
Die Zahlenvariablen müssen als Felder angelegt werden, dann hast du in allen Methoden Zugriff auf sie.
public partial class MainWindow : Window
{
private int _number1;
private int _number2;
private Random _randomGenerator;
public MainWindow()
{
InitializeComponent();
_randomGenerator = new Random();
}
public void txtbox1_TextChanged(object sender, TextChangedEventArgs e)
{
_number1 = Convert.ToInt32(txtbox1.Text);
lbl2.Content = _number1;
}
// txtbox2_TextChanged ...
private void btn1_Click(object sender, RoutedEventArgs e)
{
lbl2.Content = _random.Next(_number1, _nunber2);
}
}
Das Random-Objekt sollte auch nur einmal erzeugt werden. Nicht mit jedem Buttonklick neu.
So kann ich die Zahl ja nur im Label anzeigen lassen, wie kann ich dann mit beiden Zahlen eine Zufallszahl generieren? Denn muss ich sie dann nicht irgendwie in einer Variable abspeichern um dann "lbl2.Content = zufallszahl.Next(zahl1, zahl2);" wenn der Burron gedrückt wird zu machen?