#02wpflosowanie_liczb
Opis Losowanie liczb w C# robi się klasą Random. W WPF najczęściej wynik pokazuje się w TextBlock albo Label.
#MainWindow.xaml
XML<Window x:Class="Losowanie.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Losowanie" Height="250" Width="350">
<StackPanel Margin="20">
<TextBlock Text="Losowanie liczby" FontSize="24" Margin="0 0 0 20"/>
<TextBox x:Name="MinTextBox" Text="1" Margin="0 0 0 10"/>
<TextBox x:Name="MaxTextBox" Text="100" Margin="0 0 0 10"/>
<Button Content="Losuj" Click="Losuj_Click" Margin="0 0 0 10"/>
<TextBlock x:Name="WynikTextBlock" FontSize="20"/>
</StackPanel>
</Window>
#MainWindow.xaml.cs
CSHARPusing System;
using System.Windows;
namespace Losowanie
{
public partial class MainWindow : Window
{
Random random = new Random();
public MainWindow()
{
InitializeComponent();
}
private void Losuj_Click(object sender, RoutedEventArgs e)
{
int min = int.Parse(MinTextBox.Text);
int max = int.Parse(MaxTextBox.Text);
int wynik = random.Next(min, max + 1);
WynikTextBlock.Text = "Wylosowano: " + wynik;
}
}
}
#Wersja z zabezpieczeniem błędów
CSHARPprivate void Losuj_Click(object sender, RoutedEventArgs e)
{
bool czyMinOk = int.TryParse(MinTextBox.Text, out int min);
bool czyMaxOk = int.TryParse(MaxTextBox.Text, out int max);
if (!czyMinOk || !czyMaxOk)
{
WynikTextBlock.Text = "Podaj poprawne liczby";
return;
}
if (min > max)
{
WynikTextBlock.Text = "Min nie może być większe od max";
return;
}
int wynik = random.Next(min, max + 1);
WynikTextBlock.Text = "Wylosowano: " + wynik;
}