dynamiczne wyswietlanie w textbox

0

Chcialbym aby w texbox1 pokazywala sie caly czas losowa wybrana liczba z tablicy, az do momentu wcisniecia buttStop. Ponizej zamieszczam kod, ktory wytworzylem. Wyswietlanie w texbox1 dziala, tylko nie mozna tego przerwac bo nie da sie kliknac na buttStop. Czy ktos moglby poprawic ponizszy kod aby dzialalo to tak jak opisalem na poczatku?

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Drawing;

namespace Los
{
    public class Okienka : Form
    {
        private Button buttStart, buttStop;
        private TextBox texbox1;
        private Random losowa;
        private int warunek = 0;
        private int[] tablica;

        public Okienka()
        {
            Text = "Slepy los";

            losowa = new Random();
            tablica = new int[5] { 1, 2, 3, 4, 5 };

            buttStart = new Button();
            buttStart.Location = new Point(40, 150);
            buttStart.Size = new Size(100, 32);
            buttStart.Text = "START";
            buttStart.BackColor = Color.Green;

            buttStop = new Button();
            buttStop.Location = new Point(160, 150);
            buttStop.Size = new Size(100, 32);
            buttStop.Text = "STOP";
            buttStop.BackColor = Color.Red;

            texbox1 = new TextBox();
            texbox1.Location = new Point(50, 100);
            texbox1.Size = new Size(200, 22);

            Controls.Add(buttStart);
            Controls.Add(buttStop);
            Controls.Add(texbox1);

            buttStart.Click += new EventHandler(buttStart_Click);
            buttStop.Click += new EventHandler(buttStop_Click);
        }

        void buttStart_Click(object sender, EventArgs e)
        {
            warunek = 1;
            while (warunek != 0)
            {
                texbox1.Text = tablica[losowa.Next(tablica.Length)].ToString();
                texbox1.Refresh();
            }
        }

        void buttStop_Click(object sender, EventArgs e)
        {
            warunek = 0;
        }
    }

    static class KlasaGlowna
    {
        static void Main()
        {
            Form form = new Okienka();
            Application.Run(form);
        }
    }
}
0
  1. wątki
  2. Application.DoEvents
0
Misiekd napisał(a)
  1. wątki
    ee, od razu wątki
  1. Application.DoEvents
    już lepiej, ku jasności - wywołuj tą metodę przy każdym wykonaniu pętli.
    Alternatywnie możesz użyć klasy Timer.

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