سلامی مجدد
مشکل یافت شد. بخاطر این بود که داخل رویداد AllParents_Invalidated ، وقتی جابجایی یا تغییر اندازه صورت میگرفت ، متد InvalidateBackgroundsAndThisControl ، دو بار اجرا میشد. چون هر بار که این تابع اجرا میشه ، به کنترل والدش کاری نداره و کنترل والدش را invalidate نمیکنه.
بنابراین ، کد این رویداد را به زیر تغییر دادم و درست شد :
کد:private void AllParents_Invalidated(object sender, InvalidateEventArgs e) { // در این قسمت ، عمل Invalidate کردن یا همون رسم کردن کنترل TransparentControl را فقط روی اون کنترلی انجام میده که عملیات موس روی اون کنترل انجام گرفته باشه . // همچنین اگه مکان کنترل جاری مون تغییر کنه ، همون کنترل رسم میشه. if (this.Equals(TransparentControl.TranspControlEventDoingFlag) == true || this.IsLocationChangeDoingFlag == true) this.InvalidateBackgroundsAndThisControl(); }






پاسخ با نقل قول
Bookmarks