PDA

View Full Version : بکارگیری ProgressBar در WebBrowser



alih110
چهارشنبه 14 مرداد 1388, 02:05 صبح
سلام دوستان چه طوری میشه وقتی با Web Browser یه صفحه ای رو باز می کنی یکPROGRESS بزاری تا صفحه باز بشه .

xxxxx_xxxxx
چهارشنبه 14 مرداد 1388, 14:25 عصر
كنترل web browser يك متد داره به نام ReadyState. اگر برابر بود با READYSTATE_COMPLETE يعني صفحه كامل لود شده. پس اگر برابر نبود يعني داره لود ميشه و ميتونيم اينجا Progress bar رو فعال كنيم.
به اين صورت:


WebBrowser1.Navigate "http://www.BarnameNevis.org"
Do Until WebBrowser1.ReadyState = READYSTATE_COMPLETE
'...
'...
'...
DoEvents
Loop

ولي يك اما و اگر داره ...!

موفق باشيد/

site-111
چهارشنبه 06 آبان 1388, 08:57 صبح
كنترل web browser يك متد داره به نام ReadyState. اگر برابر بود با READYSTATE_COMPLETE يعني صفحه كامل لود شده. پس اگر برابر نبود يعني داره لود ميشه و ميتونيم اينجا Progress bar رو فعال كنيم.
به اين صورت:


WebBrowser1.Navigate "http://www.BarnameNevis.org"
Do Until WebBrowser1.ReadyState = READYSTATE_COMPLETE
'...
'...
'...
DoEvents
Loop
ولي يك اما و اگر داره ...!

موفق باشيد/

اگر ممکنه یک مثال با پروژه بزارید ممنون!!

xxxxx_xxxxx
چهارشنبه 06 آبان 1388, 09:46 صبح
دوخط کد که دیگه پروژه نمی خواد. تو همون کد بالا قبل یا بعد از DoEvent باید Value پروگرس بار رو افزایش بدید.
اون اما و اگری که گفتم داره این هست که شما نمی تونید حدس بزنید که کی قرار هست صفحه کامل لود بشه پس نمی تونید جریان پروگرس بار رو دقیق کنید.

یک راه دیگه هم وجود داره که خود IE از همین استفاده می کنه. و اون هم این که از رویداد ProgressChange در WebBrowser استفاده کنید. این رویداد دو پارامتر داره که اولی Progress هست و دومی ProgressMax. از اسمشون مشخص هست که چی هستند. پس شما یک ProgressBar بزارید رو فرم و این کد رو بنویسید:


Private Sub WebBrowser1_ProgressChange(ByVal Progress As Long, ByVal ProgressMax As Long)
On Error Resume Next
ProgressBar1.Max = ProgressMax
ProgressBar1.Value = Progress
End Sub
این دقیقاً همانند پروگرس بار خود IE عمل می کنه. On error در کد بالا به این خاطر هست که در انتها زمانی که فرم به طور کامل لود شد پارامتر Progress مقدار -1 میگیره درحالیکه Value پروگرس بار نمی تونه مقدار منفی داشته به همین خاطر on error گذاشتم.

موفق باشید/

پ.ن: عنوان تاپیک اصلاح شد. عنوان پیشین: کار با Web Browser

saeidcd
دوشنبه 02 آذر 1388, 17:43 عصر
اینهم میشه
Private Sub WebBrowser1_ProgressChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserProgressChangedEven tArgs) Handles WebBrowser1.ProgressChanged

Dim d, t As Integer

ProgressBar1.Visible = True

d = e.CurrentProgress

t = e.MaximumProgress

If d <= 0 Then

ProgressBar1.Value = 0

ProgressBar1.Visible = False

Else

ProgressBar1.Value = Math.Min(ProgressBar1.Maximum, Convert.ToInt32(Math.Floor(ProgressBar1.Maximum * (d / t))))

End If

End Sub