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

نام تاپیک: Progress Bar

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    Question Progress Bar

    آقا نگین سرچ کنا.
    من کردم
    پیدام کردم
    ولی یا به کارم نیمده
    یا ارور میداده.

    من یک فرم 2 لودینگ دارم.
    یک فرم 1 دیگر هم دارم که تووش درخته و این درخته توسط تابع مثلا ایکس پر میشه.

    تابع ایکس در لود فرم 1 است.(هنگ بودن سیستم هم همینجاست).
    (در مجموع بگم که پر شدن درخت در هنگام بالا اومدن فرم 1 باید انجام بشه)

    حالا میخوام فرم 1 که داره لود میشه و درخت پر میشه،لودینگ نمایش بده.
    فقط یک مسئله که میخوام حداقل 2 ثانیه لودینگ نمایش داده بشه،حتی اگر نیاز نبود.
    اگرم که نیازه که به اندازه نیازش لودینگ رو نمایش بده.
    (البته اگه اینم نشد،مشکلی نیس،فقط لود بیاد و بره به اندازه)

    در آخرم این فرم 2 لودینگ بسته بشه.

    من میدونم که با اینا باید کار کرد ولی یا ارور میده یا نمیشه:
    Invoke
    Thread
    BackgroundWorker
    Delegate
    Timer

    لطفا کامل توضیح بدین دوستان
    _____________________
    مشکل اینجاست که من تابع پر کردن درختام(تابع ایکس) توو لود فرم 1 است.

    وقتی اون تابع رو میام میزارم توو DoWork این ارور میاد:
    Cross-thread operation not valid: Control 'TrvCoding' accessed from a thread other than the thread it was created on.

    TrvCoding هم اسم درخته.

    واسه همین میام این رو میزارم بالا سر تابه ایکس:
    CheckForIllegalCrossThreadCalls = false;

    بعد این ارور رو توو DoWork میده:

    Action being performed on this control is being called from the wrong thread. Marshal to the correct thread using Control.Invoke or Control.BeginInvoke to perform this action.

    (آخه اومدم تابع ایکس رو گذاشتم توو DroWork . نذارمم که اصلا سودی نداره و لودینگی نمیشه!)

    بعد واسه رفع این ارور ، این ایـــــــــف رو میذارم:

    if (TrvCoding.InvokeRequired == false)
    {
    TvfCoding.LoadTreeFullData();
    }
    ولی باز لودینگی نمیبینم.
    یعنی هستا ولی 1 میلیونم ثانیه.
    اصلا میگیم اینا که من گفتم کار کنه،
    من میخوام حداقل 2 ثانیه لودینگ بده.

    چرا false?
    چون اگه true باشه،
    Cross-thread operation not valid: Control 'TrvCoding' accessed from a thread other than the thread it was created on.
    میاد!!!
    حقم داره ، چون داره توو لود فرم 1 ، تابع ایکس یک بار میاد.
    البته این خط رو هم کامنت کردم ولی در مجموع کار نمیکنه!

    حالا چطور من تابه DoWork رو توو لودینگ فرم 1 بیارم؟آیا راه اینه؟اگه آره،مشکل توو این قسمته:
    backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)

    و

    private void form1_Load(object sender, EventArgs e)

    که نوع E یکی نیس!

    Cast هم نمیشه.ارور میده.

    آگه راه هم این نیس، راه لطفا
    _____
    هرچی مثال توو نت است،اومدن عملیاتشون رو توو دگمه نوشتن.
    ولی مال من توو لود است
    آخرین ویرایش به وسیله dr_jacky_2005 : یک شنبه 28 شهریور 1389 در 14:15 عصر

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

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