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

نام تاپیک: خطای Cross-thread operation not valid

  1. #1
    کاربر دائمی آواتار milad.biroonvand
    تاریخ عضویت
    تیر 1388
    محل زندگی
    تهران
    پست
    1,406

    خطای Cross-thread operation not valid

    من از یک نخ بصورت زیر

    Dim thread As New Threading.Thread(AddressOf bindcombobox)
    thread.Start()



    برای بایند یک کمبوباکس استفاده می کنم ولی خطای زیر رو میده

    An unhandled exception of type 'System.InvalidOperationException' occurred in System.Windows.Forms.dll


    Additional information: Cross-thread operation not valid: Control 'combobox1' accessed from a thread other than the thread it was created on.
    مشکلش چیه؟

  2. #2

    نقل قول: خطای Cross-thread operation not valid

    سلام
    با اینکه از زمان سوال خیلی گذشته ولی جواب زیر رو میزارم شاید واسه بعضی ها بدرد بخوره
    اشکال مربوط به زمانی هست که در استفاده از نخ بخواهید مقداری رو بایند کنید بهش.
    مثلا واسه مقدار دادن به یک تکست باکس این ارور واسه ما رخ داد، که با استفاده از کد زیر نتیجه درست شد:
    قبلا از این خط کد برای مقدار دادن استفاده می کردیم که همین خط ارور میداد:

    statusBox.Text = "" + (connections.ToString());

    که به جای این خط از :


    SetControlPropertyValue(statusBox, "Text", connections);

    استفاده شد. و البته کد های زیر رو هم باید اضافه کنید:


    delegate void SetControlValueCallback(Control oControl, string propName, object propValue);
    private void SetControlPropertyValue(Control oControl, string propName, object propValue)
    {
    if (oControl.InvokeRequired)
    {
    SetControlValueCallback d = new SetControlValueCallback(SetControlPropertyValue);
    oControl.Invoke(d, new object[] { oControl, propName, propValue });
    }
    else
    {
    Type t = oControl.GetType();
    PropertyInfo[] props = t.GetProperties();
    foreach (PropertyInfo p in props)
    {
    if (p.Name.ToUpper() == propName.ToUpper())
    {
    p.SetValue(oControl, propValue.ToString(), null);
    }
    }
    }
    }


    البته بسته به نوع کنترل تون باید مقدار Text فرستاده در خط


    SetControlPropertyValue(statusBox, "Text", connections);

    رو تغیر بدبد .
    مثلا برای progressBarباید value رو استفاده کنید.

تاپیک های مشابه

  1. سوال: Cross Thread Operation not valid
    نوشته شده توسط mmolia در بخش C#‎‎
    پاسخ: 3
    آخرین پست: دوشنبه 15 دی 1393, 23:17 عصر
  2. خطای Specified cast is not valid. (SqlManagerUI)
    نوشته شده توسط moferferi در بخش Backup & Restore
    پاسخ: 1
    آخرین پست: شنبه 18 خرداد 1392, 07:32 صبح
  3. چرا ارور Cross-thread operation not valid رخ نمیده
    نوشته شده توسط bade saba در بخش C#‎‎
    پاسخ: 11
    آخرین پست: جمعه 02 تیر 1391, 20:24 عصر
  4. Cross-thread operation not valid در ايجاد event
    نوشته شده توسط reza_mostafavi63 در بخش C#‎‎
    پاسخ: 5
    آخرین پست: شنبه 17 اردیبهشت 1390, 19:54 عصر
  5. سوال: Cross-thread operation not valid error
    نوشته شده توسط mehdi_csharp در بخش C#‎‎
    پاسخ: 2
    آخرین پست: سه شنبه 12 بهمن 1389, 20:24 عصر

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

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