Wątek przeniesiony 2016-11-04 14:29 z C# i .NET przez ŁF.

Losowanie czasu z danego zakresu

0

Witam
Jak mogę w WindowsFormsApplication wykonać operację, w której program bedzie losował czas z zakresu np. 1-30sekund i po wylosowanym czasie wyświetli losowe okno dialogowe. Zapętlam się w randomach, ale nic dobrego z tego nie wynika. Jestem początkująca, więc proszę o wyrozumiałość.
Ma to działać przykładowo tak: mamy okna dialogowe 1, 2 i 3. program losuje, że np po 16 sekundach od kliknięcia buttonu "start" pojawi się okno dialogowe nr 2. Następnie po np 23 sekundach wyświetli się okno dialogowe nr 1 itd...
Z góry dziękuję za pomoc

1

Losujesz liczbę z zakresu. Następnie wykorzystujesz klasę Timer - 4programmers.net/C_sharp/Timery. Ustawiasz sobie jako interwał wartość tej liczby. Przypiszesz odpowiednią metodę, która jest wykonywana co ten interwał. W niej piszesz kod do otworzenia okna dialogowego. Zatrzymujesz timer.

1

Tak jak kolega wyżej napisał wykorzystaj timer (poniżej info z MSDN jak to działa):
https://msdn.microsoft.com/pl-pl/library/system.timers.timer(v=vs.110).aspx
no i Random, również link do MSDN, można się dowiedzieć ciekawych rzeczy:
https://msdn.microsoft.com/pl-pl/library/2dx6wyd4(v=vs.110).aspx

Powodzenia :)

0

Dziękuję pięknie! Zaczynam więc działać i w razie co nie omieszkam zapytać ponownie ;)
Pozdrawiam!

0

problem 1:
Random random = new Random();
int losowa = new Random().Next(30);
jak zrobić żeby losowało od 1 a nie od 0?

0

W C# mozna dwa parametry podac: https://msdn.microsoft.com/en-us/library/2dx6wyd4(v=vs.110).aspx
W innych jezykach dodaje sie 1 do wyniku czyli mialbys: Random.next(31)+1 Random.next(30)+1 bo Random dziala na przedziale <0,podanaLiczba)

0

Ponownie odeśle do MSDN https://msdn.microsoft.com/en-us/library/2dx6wyd4(v=vs.110).aspx
Metoda Next przyjmuje dwa parametry:

public virtual int Next(
	int minValue,
	int maxValue
)
 

Domyślam się, że jeśli podasz tylko jedną wartość, w twoim przypadku 30 to kompilator przyjmie za wartość minimalną, wartość domyślną dla typu int32, czyli 0.

1 użytkowników online, w tym zalogowanych: 0, gości: 1