2

ボタンが押された場合にバーの値が上昇するプログレスバーが必要です(MouseDownイベント)。バーは同時に上昇する必要があります。

何か案は?タイマーで試しましたが、これが現在私が持っているすべてです

private void button1_Click(object sender, EventArgs e)
        {
            progressBar1.PerformStep();
            progressBar1.UseWaitCursor = true;
        }
        private void button2_Click(object sender, EventArgs e)
        {
            progressBar1.Value = 0;
        }
        public void button1_MouseDown(object sender, MouseEventArgs e)
        {
            timer1.Start();

        }
        public void button1_MouseUp(object sender, MouseEventArgs e)
        {
            timer1.Stop();  
        }
        private void timer1_Tick(object sender, EventArgs e)
        {

        }
4

2 に答える 2

1

次のプログラムは、マウスが押されている 20 ミリ秒ごとにプログレス バーを更新し、2 秒後に 10 100% を取得します。

public partial class Form1 : Form
{

    private Timer pbTimer;
    private int pbProgress = 0;

    public Form1()
    {
        InitializeComponent();
        pbTimer = new Timer();
        pbTimer.Tick += new EventHandler(ProgressUpdate);
        pbTimer.Interval = 20;
        this.MouseDown += Form1_MouseDown;
        this.MouseUp += Form1_MouseUp;
    }

    private void ProgressUpdate(object sender, EventArgs e)
    {
        if (pbProgress < 100)
        {
            progressBar1.Value = ++pbProgress;
        }
    }

    private void Form1_MouseDown(object sender, MouseEventArgs e)
    {
        pbTimer.Start();
    }

    private void Form1_MouseUp(object sender, MouseEventArgs e)
    {
        pbTimer.Stop();
        progressBar1.Value = 0;
        pbProgress = 0;
    }
于 2013-11-04T17:24:15.970 に答える
1

次のようになります。

void timer_Tick(object sender, EventArgs e) {
  progressBar1.PerformStep();      
}

void button1_MouseDown(object sender, MouseEventArgs e) {
  timer.Start();
}

void button1_MouseUp(object sender, MouseEventArgs e) {
  timer.Stop();
}
于 2013-11-04T17:14:30.707 に答える