PDA

View Full Version : Override کردن متد OnPaint



razavi_university
دوشنبه 22 بهمن 1386, 01:34 صبح
می خوام بدونم چطور میشه نحوه نمایش دادن اولیه یک فرم رو تغییر بدم
نمی دونم دقیقا چی باید توی متد Override شده بنویسم !!
مثلا می‌خواهیم فرم از بالا به پایین مثلا اسلاید باز بشه
ممنون

hassan razavi
دوشنبه 22 بهمن 1386, 10:05 صبح
نیازی به override کردن هم نیست . می تونید با یک timer اندازه (height) فرمتون رو افزایش بدید

razavi_university
سه شنبه 23 بهمن 1386, 10:13 صبح
من این رو واسه مثال گفتم
میخوام دقیقا نحوه کار متد Onpaint رو بدونم تا بتونم اون رو Override کنم
مثلا وقتی می خوام فرم از حالت محو تا نمایش کامل بیاد از یه تایمر استفاده کردم و مقدار Opacity رو کم کم زیاد کردم ولی فرم تا زمانی که این مقدار دهی تموم بشه (یعنی این چند ثانیه افزایش تموم شه ) سیاه می مونه بعد یکدفعه نمایش داده میشه

sinpin
سه شنبه 23 بهمن 1386, 11:15 صبح
من این رو واسه مثال گفتم
میخوام دقیقا نحوه کار متد Onpaint رو بدونم تا بتونم اون رو Override کنم
مثلا وقتی می خوام فرم از حالت محو تا نمایش کامل بیاد از یه تایمر استفاده کردم و مقدار Opacity رو کم کم زیاد کردم ولی فرم تا زمانی که این مقدار دهی تموم بشه (یعنی این چند ثانیه افزایش تموم شه ) سیاه می مونه بعد یکدفعه نمایش داده میشه
مشکل احتمالا اینه که شما از یک حلقه استفاده کردید و برنامه مادامیکه به انتهای حلقه نرسه نمیتونه به ظاهر خودش (OnPaint) برسه و لازمه هر از گاهی فرمتون بتونه ایونتهای خودش رو هندل کنه.
دستور زیر رو در حلقه ای که ایجاد کردید اضافه کنید:

Application.DoEvents();اینم یک تاپیک مشابه (شاید پست شماره 10# مشکل شما رو حل کنه):
http://barnamenevis.org/forum/showthread.php?t=93297&highlight=application.doevents