PDA

View Full Version : مشکل دسترسی نخ ها به فرم



vbprogrammerx
یک شنبه 06 آبان 1386, 21:08 عصر
سلام
من توی برنامه ام چند تا نخ دارم می خوام با استفاده از این نخ ها مستقیما خصوصیت های شی های روی فرم (مثلا محتوای textbox را update کنم)
اما در زمان اجرا خطا رخ می ده و می گه شما مجاز به استفاده از فرم نیستید - تنها کلاسی که فرم در آن تعریف شده حق دسترسی به فرم را دارد.
اگه میشه کمکم کنید

MohammadSoft
یک شنبه 06 آبان 1386, 21:17 عصر
سلام
خوب حق داره که اجازه نده .
شما توی برنامه های MultiThread این جور کارا مثل تغییر محتوای تکست باکس را نباید بطور مستقیم از توی یه Thread دیگه انجام بدید .

PC2st
یک شنبه 06 آبان 1386, 23:53 عصر
یک متد مثلا بنام AOD تعریف کنید و در متد AOD تغییرات رو روی مثلا TextBox اعمال کنید، هر وقت که خواستید تا تغییرات روی TextBox اعمال شود، متد AOD رو توسط متد Invoke صدا بزنید (با ایجاد یک شیئ delegate). در MSDN نمونه مثال پیدا میکنید اگر متد Invoke رو سرچ نمایید.

mohammad272005
دوشنبه 07 آبان 1386, 00:56 صبح
مثال:

delegatevoidSetTextBoxTextDel();
privatevoid SetTextBoxText(string text)
{
SetTextBoxTextDel setTextBoxText = delegate()
{
textBox1.Text = text;
};
if (textBox1.InvokeRequired)
textBox1.Invoke(newSetTextBoxTextDel(setTextBoxTex t));
else
setTextBoxText();
}