• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[WPF] Odswieżanie wartosci textboxa

0 głosów
562 wizyt
pytanie zadane 16 maja 2018 w C# przez polsky Nowicjusz (230 p.)

Chcialbym , żeby program wyświetlał w odstepie 5 sek. w textboxie kolejno wartosci : 4 (wartosc ustawiona defaultowo) ,0,1,2,3.
Obecnie wyswietla mi 4 ( to co jest wpisane do textboxa na starcie ) i po 5 sek wyswietla ostatni krok czyli wartość 3 ( krok 1,2 i 3 nie jest wysyłany do TextBoxa).

namespace WpfApp1

    public partial class MainWindow : Window
    {
        private int x = 0;

        public MainWindow()
        {
            InitializeComponent();

            DispatcherTimer timer = new DispatcherTimer();
            timer.Interval = TimeSpan.FromSeconds(5);
            timer.Tick += timer_Tick;
            timer.Start();

            for (int i= 0; i < 4; i++)
            {
                x = i;

            }
        }

        private void timer_Tick(object sender, EventArgs e)
        {
            wypelnij (x); 
        }

        private void wypelnij ( int x) 

            if (x == 0) TextBox1.Text = "0";
            if (x == 1) TextBox1.Text = "1";
            if (x == 2) TextBox1.Text = "2";
            if (x == 3) TextBox1.Text = "3";
        }
    }
}

Pomocy :)

2 odpowiedzi

0 głosów
odpowiedź 16 maja 2018 przez Qwerty96 Stary wyjadacz (13,580 p.)
for (int i= 0; i < 4; i++)
{
    x = i;
}

Po tej pętli x ma wartość 3 i co za tym idzie

wypelnij (x); 

w tym miejscu dalej będzie mieć tą wartość. Wywal tą pętlę z konstruktora i inkrementuj zmienną w handlerze zdarzenia.

0 głosów
odpowiedź 16 maja 2018 przez polsky Nowicjusz (230 p.)

Jest :) Udało się :

Wygląda to tak :

namespace WpfApp1

{

    public partial class MainWindow : Window
    {
        private static int x = 0;

        public MainWindow()
        {
            InitializeComponent();

            DispatcherTimer timer = new DispatcherTimer();
            timer.Interval = TimeSpan.FromSeconds(3);
            timer.Tick += timer_Tick;
            timer.Start();
     
        }

        private void timer_Tick(object sender, EventArgs e)
        {
                x ++;
            wypelnij(x);            
        }

        private void wypelnij(int x)
        {
                if (x == 0) TextBox1.Text = "0";
                if (x == 1) TextBox1.Text = "1";
                if (x == 2) TextBox1.Text = "2";
                if (x > 3) TextBox1.Text = "3";
                          
        }
    }
}

Dzieki za naprowadzenie :P

Podobne pytania

0 głosów
1 odpowiedź 851 wizyt
pytanie zadane 4 czerwca 2018 w C# przez polsky Nowicjusz (230 p.)
0 głosów
2 odpowiedzi 1,872 wizyt
pytanie zadane 5 stycznia 2017 w C i C++ przez Daniel Tkaczyk Początkujący (280 p.)
+1 głos
1 odpowiedź 623 wizyt
pytanie zadane 1 listopada 2021 w C# przez niewiedzący Nowicjusz (130 p.)

93,742 zapytań

142,678 odpowiedzi

323,297 komentarzy

63,328 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...