progress
Børre Stenseth
Moduler>GUI-komponenter>Progress

Progress

Hva
screen
Progress bar

Et enkelt program som demonstrerer bruk av en progressbar. Det brukes en timer for å kjøre en prosess, men prinsippet vil være det samme selv om vi bruker progressbaren på en tidkrevende jobb av typen "oppdater n filer". Da vil hver fil-oppdatering spille samme rolle som timer-ticket i dette eksempelet.

Vi lager det nytt "project" av typen "Windows Application". Så bruker vi GUI-editoren til å lage en enkel form. Vi får igjen tre kildefiler:

  • Program.cs
  • Form1.cs
  • Form1.Designer.cs

Vi konsentrerer oss om den ene fila som inneholder vår handskrevne kode

Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace control9
{
    public partial class Form1 : Form
    {
        Int32 MaxTime = 10000;
        Int32 TimeStep = 100;
        Int32 TimeLeft = 0;
        bool stopped = false;
        public Form1()
        {
            InitializeComponent();
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            TimeLeft -= timer1.Interval;
            if ((TimeLeft < TimeStep)||(stopped))
                Stop();
            else
                progressBar1.Value += 1;
        }
        private void button1_Click(object sender, EventArgs e)
        {
            // start button
            Start();
        }
        private void button2_Click(object sender, EventArgs e)
        {
            // stopp button
            stopped = true;
        }
        private void Start()
        {
            TimeLeft = MaxTime;
            timer1.Interval = TimeStep;
            button1.Hide();
            button2.Show();
            progressBar1.Maximum = MaxTime/TimeStep;
            progressBar1.Minimum = 0;
            progressBar1.Value = 0;
            progressBar1.Show();
            stopped = false;
            timer1.Enabled = true;
        }
        private void Stop()
        {
            timer1.Enabled = false;
            button1.Show();
            button2.Hide();
            progressBar1.Hide();
        }
    }
}
Referanser
Prosjektet:
https://svn.hiof.no/svn/psource/Csharpspikes/control9
Vedlikehold
B.Stenseth, desember 2006
(Velkommen) Moduler>GUI-komponenter>Progress (Mediaplayer)