نمایش نتایج 1 تا 5 از 5

نام تاپیک: بکارگیری ProgressBar در WebBrowser

  1. #1

    Question بکارگیری ProgressBar در WebBrowser

    سلام دوستان چه طوری میشه وقتی با Web Browser یه صفحه ای رو باز می کنی یکPROGRESS بزاری تا صفحه باز بشه .

  2. #2
    VIP آواتار xxxxx_xxxxx
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    X place
    سن
    34
    پست
    4,768

    نقل قول: کار با Web Browser

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

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

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

    موفق باشيد/
    الگوریتم هایی که تاریخچه خود را فراموش می کنند، محکوم به تکرار آن هستند.

  3. #3
    کاربر تازه وارد آواتار site-111
    تاریخ عضویت
    مهر 1388
    محل زندگی
    Persian
    پست
    57

    نقل قول: کار با Web Browser

    نقل قول نوشته شده توسط xxxxx_xxxxx مشاهده تاپیک
    كنترل web browser يك متد داره به نام ReadyState. اگر برابر بود با READYSTATE_COMPLETE يعني صفحه كامل لود شده. پس اگر برابر نبود يعني داره لود ميشه و ميتونيم اينجا Progress bar رو فعال كنيم.
    به اين صورت:

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

    موفق باشيد/
    اگر ممکنه یک مثال با پروژه بزارید ممنون!!

  4. #4
    VIP آواتار xxxxx_xxxxx
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    X place
    سن
    34
    پست
    4,768

    نقل قول: کار با Web Browser

    دوخط کد که دیگه پروژه نمی خواد. تو همون کد بالا قبل یا بعد از 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
    آخرین ویرایش به وسیله xxxxx_xxxxx : چهارشنبه 06 آبان 1388 در 09:57 صبح
    الگوریتم هایی که تاریخچه خود را فراموش می کنند، محکوم به تکرار آن هستند.

  5. #5

    نقل قول: بکارگیری ProgressBar در WebBrowser

    اینهم میشه
    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

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •