Circular Progress Bar - wartość VALUE - pokazywanie

0

Kto pyta nie błądzi - jak wyświetlić wartość (value) dla circular progress bar'a?

Te dwie wersje daja od razu w labelce wartość 100%

postep_analiza.Value = i;
test_procenty.Text = string.Format("{0}%", postep_analiza.Value);
postep_analiza.Update();

oraz:

postep_analiza.Value = i;
test_procenty.Text = postep_analiza.Value.ToString();
postep_analiza.Update();
0

? wartosc poczatkowa jest zdefiniowana jako 0 -nadal problem

0

Trza więcej kodu. Skąd się bierze wartość i?
Co aktualizuje postep_analiza.Value? To WPF? Wszystko działa w jednym wątku?

To jest konieczne - postep_analiza.Update();
To może test_procenty też wymaga jakiegoś update-a.

0

@jacek.placek:

Jacku - tak to wygląda:
W Form1Load:

postep_analiza.Value = 0;
postep_analiza.Minimum = 0;
postep_analiza.Maximum = 100;

I potem tylko w przycisku wywołującym proces:

for (int i = 1; i <= 100; i++)
            {                               
                postep_analiza.Value = i;                  
                test_procenty.Text = string.Format("{0}%", postep_analiza.Value);
                postep_analiza.Update();                
            } 

I tyle. I nadal problem z wyświetleniem wartości liczbowej z postępem w lejbelce - od razu jest setka.

0

Zakładając, ze Form_Load to dobre miejsce na takie rzeczy to spróbuj dodać

test_procenty.Refresh();

Problem jest taki, ze 100 iteracji pętli to Ci tylko mignie. Spróbuj z 1000 to będzie coś widać.
Strasznie jestem ciekawy po co Ci w ogóle taki kod. Chyba, ze w tej pętli jest coś jeszcze bo jaki ma sens zmiana postępu czy labela w prostej pętli. Można id razu tam wstawić 100 i po kłopocie :)

0

Sugerujesz, że Form1_Load to złe miejsce? Gdzie byś takie kwestie umieszczał?

Circle Progress Bar ustawiłem pod zwykłego ProgressBar - circle jest dla efektu - ale zwykły pełni ważną rolę dotyczaca uslug - dlugi temat.

I teraz ustawilem predkosc na 11300, gdzie value maks rzecz jasna to = 100.

Pytanie - jesli zastosuje ta w/w kombinacje do progressbar to dziala, liczy procenty w procesie i odczycie danych, ale juz w circle problem.

p.s - robie proxy

0

Miejsce zależy od różnych rzeczy. Czy to jednorazowa akcja, czy moze po Activated albo Shown.
Reszty chyba nie do końca rozumiem.

0

@jacek.placek: Jacku, mając tego CircleProgressBar - jak zatrzymać pokazywanie paska działania (Value)? Definiuję w timerze (timer1.Stop();) staram sie zatrzymac akcje postepu i na nic - ani przycisk funkcyjny nie dziala, ani timer

nie mialem do czynienia z circle progres barem - a jednak jest troszke inaczej niz w progress barz'e - bo tam to w/w dziala

1

Nie wiem o jakim timerze piszesz bo wcześniej nie było nic o timerze ale może to Ci pomoże.

public partial class Form1 : Form
    {
        
        System.Timers.Timer timer;
        int i = 0;

        public Form1()
        {
            InitializeComponent();
            circularProgressBar1.Maximum = 1000;            

            timer = new System.Timers.Timer(100);
            timer.Elapsed += (s, e) => {
                i++;
                Invoke(new Action(() =>
                {
                    UpdateProgresBar();

                }));
            };
            timer.Start();

        }
        
        private void UpdateProgresBar()
        {
            label1.Text = i.ToString();
            circularProgressBar1.Value = i;
            if (i == 300)
                timer.Stop();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (timer != null && !timer.Enabled)
            {
                timer.Start();
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (timer != null && timer.Enabled)
            {
                timer.Stop();
            }
        }
    }
0

Sam pisałeś specjalnie dla mnie? :P

Oczywiście dziękuję - mega pomocne!

0

@jacek.placek: Jacku - wszystko okej, poza zatrzymaniem Circle Progres Bar'a - mam tu na myśli postęp na obrazku, w lejbelce wartość się zatrzymuje (value) ale postep na pasku okraglym nie, takie niby nic, ale walcze od 2 dni

0

U mnie się zatrzymuje, ale po ok. sekundzie (pewnie ze względu na jakąś obsługę animacji).

Może masz inny obiekt bo ja korzystam z CircularProgresBar z nuget-a.

<package id="CircularProgressBar" version="2.5.6403.13419" targetframework="net46" />

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