Как сделать индикатор загрузки файла в WinForms? - PullRequest
0 голосов
/ 21 октября 2019

Я делаю веб-браузер с CefSharp. Я только что осуществил загрузку 2 дня назад, но нет никакого индикатора прогресса, чтобы согласиться с загрузкой. Как сделать, чтобы индикатор загрузки отображал прогресс загрузки?

1 Ответ

0 голосов
/ 22 октября 2019

Редактировать: прояснение ситуации

Добавьте элемент управления ProgressBar к вашей форме и добавьте компонент BackgroundWorker вместе с ним в форму. Сначала определите размер файла:

Int64 bytes_total= Convert.ToInt64(client.ResponseHeaders["Content-Length"])

Это код из удивительного ответа Алекса, который можно найти здесь:

public Form1()
{
    InitializeComponent();

    backgroundWorker1.DoWork += backgroundWorker1_DoWork;
    backgroundWorker1.ProgressChanged += backgroundWorker1_ProgressChanged;
    backgroundWorker1.WorkerReportsProgress = true;
}

private void button1_Click(object sender, EventArgs e)
{
    backgroundWorker1.RunWorkerAsync();
}

private void backgroundWorker1_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
{
    //Replace this code with a way to figure out how much of the file you have already downloaded and then use backgroundworker1.ReportProgress and send the percentage completion of the file download.
    for (int i = 0; i < 100; i++)
    {
        Thread.Sleep(1000);
        backgroundWorker1.ReportProgress(i);
    }
}

private void backgroundWorker1_ProgressChanged(object sender, System.ComponentModel.ProgressChangedEventArgs e)
{
    progressBar1.Value = e.ProgressPercentage;
}
...