چطور مي تونم با استفاده از Thread ها دو تا فرم رو با هم نشون بدم.من هر كاري ميكنم چه با كنترل BackGroundWorker و چه با كنترل كردن مقدار InvokeRequired مربوط به فرمي كه ميخوام نمايش بدم ExeptionError ميده.
چطور مي تونم با استفاده از Thread ها دو تا فرم رو با هم نشون بدم.من هر كاري ميكنم چه با كنترل BackGroundWorker و چه با كنترل كردن مقدار InvokeRequired مربوط به فرمي كه ميخوام نمايش بدم ExeptionError ميده.
اگر Exception در ارتباط با Cross Thread هست میتونید با این روش مسئله رو حل کنید البته کمی خطرناک است :
یک خصوصیت static در کلاس Contolبه نام
CheckForIllegalCrossThreadCalls هست که می تونید مقدارش رو false کنید و از Thread فعلی یک شیء رو در یک Thread دیگر تغییر بدهید. البته بعد از اتمام کار دوباره مقدارش رو true کنید.
بله تويه msdn هم به خطرناك بودن اين روش تاكيد شده بود!!!!
من نميخوام خطا رو از بين ببرم مي خوام برنامم درست كار كنه.
فکر کنم تا این مطلب تو صفحه اول نباشه کسی بهش توجه نمیکنه من دو تا سوال پرسیدم هر دو تاش الان رو هواست پروژه منم رو هوا هست!!!
لطفا کمک کنین.
سوال دوم من:
https://barnamenevis.org/showthread.php?t=110427
سلام جواب اين سوال خيلي ساده بود و جوابشم اينه كه امكان اين كار اصلا وجود نداره چرا چون ماهيت فرمهاي ويندوز اين گونه نيست هميشه يك فرم به عنوان top انتخاب ميشه و شما با اون كار ميكنيد و هيچ دو فرمي ميتونه به طور هم زمان فعال باشه.
حالا من سوالمو يه كم تغيير ميدهم اينكه چه طور خوده ويندوز فرمهاي مختلف رو مديريت ميكنه به طوري كه نيازي به بستن يك فرم براي رسيدن به فرم ديگر نيست؟
فكر ميكنم خاصيت MDI اين فرمها يه چيزايي براي گفتن داشته باشه اگه ممكنه يه كم در مورد اين خاصيت فرم ها توضيح بديد.
لزومي نداره فرم رو ShowDialog كنيد. Show كافيه.
سلام.انجام دادم ولي نشد كه نشد Cross-Thread Exeption ميده.گفتم كه براي جلوگيري از اين پيغام تويه msdn دو تا راه پيشنهاد كرده يا با استفاده از كنترل BackGroundWorker اين كارو انجام بديم يا با Invokerequired property ولي با وجود اين هم بازم همون پيغام رو ميده.
ببين شايد اين مثال قضيه رو روشن تر كنه يه فرم ميخوام شبيه فرمي كه برنامه Nero موقع Add كردن داده ها ازش استفاده ميكنه.ويژگي اين فرم چيه؟ اينه كه همزمان كه فرم جاري برقراره ميتونيد تويه فرم زيري اطلاعات را تغيير بديم.
سؤال بي پاسخ من: https://barnamenevis.org/showthread.php?t=110427
آخرین ویرایش به وسیله yasercomeng : شنبه 15 تیر 1387 در 00:13 صبح