2015-04-08 3 views
0

Я пытаюсь выполнить простой прогрессбар к моим контролем веб-браузера, но не могу понять, почему я получаю следующее сообщение об ошибке:webBrowser_ProgressChanged давать отрицательный выход для ProgressBar

"Value of '-1' is not valid for 'Value'. 'Value' should be between 'minimum' and 'maximum'. Parameter name: Value"

Я не уверен, как прогресс возвращает -1.

Вот код, который я в настоящее время попробовал:

private void webBrowser1_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e) 
    { 
     int max = (int)e.MaximumProgress; 
     int current = (int)e.CurrentProgress; 
     int min = 0; 

     progressBar1.Minimum = 0; 
     progressBar1.Maximum = max; 
     progressBar1.Value = current; 
    } 

ли кто-нибудь может увидеть, где я мог бы быть неправильно?

+4

[WebBrowserProgressChangedEventArgs.CurrentProgress] (https://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowserprogresschangedeventargs.currentprogress%28v=vs.110%29.aspx): "* Число байтов, которые были загружены или -1, чтобы указать, что загрузка завершена. * «Документация - ваш друг. –

+0

@ J.Steen Хорошо, так было бы логично, если бы я добавил это право после объявления значений: 'if (current == -1) {current = max;}' – EyeSeeSharp

+0

Более или менее, да. –

ответ

2

Если вы читаете документацию о том, что WebBrowserProgressChangedEventArgs.CurrentProgress будет содержать, он говорит, что это

"The number of bytes that have been loaded or -1 to indicate that the download has completed."

Таким образом, было бы логично предположить, что, когда вы получите значение -1, ваш прогрессбар должен быть завершен - или скрыты, однако вы хотите справиться с этим.