PDA

View Full Version : مشكل با groupbox در UserControl



iranrose63
چهارشنبه 11 اردیبهشت 1387, 09:50 صبح
سلام
من يه كلاس نعريف كردم تو اون كلاس يگ groupbox ايجاد كردم و از اون توي برنامه هام استفاده ميكنم خاصيت اون اينه كه با تغيير اندازش اندازه control هاي تو اونم تغيير ميكنه الان يه مشكل دارم و اون اينه كه وقتي برنامم رو ميبندم و دوباره باز ميكنم اندازه و محل تمام كنترل هاي توي groupbox برابر صفر شدن يا اينكه اعداد حيلي بزرگي شدن و به من خطا ميده در واقع design من به هم خورده مي خوام بدونم چرا اين اتفاق ميفته و من چيكار بايد بكنم

hassan razavi
چهارشنبه 11 اردیبهشت 1387, 09:57 صبح
از متغیرهای Static استفاده کنید یا جایی برای ذخیره اندازه ها تون در نظر بگیرید.

iranrose63
چهارشنبه 11 اردیبهشت 1387, 10:12 صبح
آقاي رضوي من تو برنامم حدود 30 فرم دارم و تو اكثر اونها حداقل يك groupbox دارم فكر نمي كنم استفاده از متغير براي نگهداري اندازه و محل control ها كار منطقي باشه من مي خوام بدونم چرا اين اتفاق مي افته و من چه طور ميتونم حلش كنم .
ممنون

hassan razavi
چهارشنبه 11 اردیبهشت 1387, 10:19 صبح
ببخشید دوست عزیز .من قابلیت کنترل شما رو بد متوجه شدم ، فکر کردم که در خود User Control تون چند تا کنترل دیگه وجود داره ولی شما یک UserControl از جنس GroupBox ایجاد کردید و کنترلهایی رو که روی اون قرار می دهید و دارای قابلیت جدید شما میشوند.
باید دید که شما UserControl تون رو چه جوری ایجاد کردید. در چه رویدادی برای تعیین اندازه و موقعیت کنترلهای روی اون استفاده کرده اید. چه زمانی اطلاعات مربوط به کنترلهای Groupbox رو میگیرد و مدیریت میکنید؟

iranrose63
چهارشنبه 11 اردیبهشت 1387, 10:37 صبح
من در رويداد SizeChanged اندازه و محل كنترل ها رو تغيير ميدم مشكلي كه من دارم اينهكه مي خوام فقط موقع اجراي برنامه هام اين رويداد فراخواني بشه و تغيرات روي اندازه و محل كنترل ها به وجود بياد ولي حتي موقعي هم كه خودم دارم تو design برنامه اندازه groupbox رو تغيير ميدم هم اندازه كنترل ها تغيير ميكنه

hassan razavi
چهارشنبه 11 اردیبهشت 1387, 10:59 صبح
شما بهتره که از رویداد onpaint یا Load استفاده کنید

iranrose63
چهارشنبه 11 اردیبهشت 1387, 11:11 صبح
مشكلم رو يه جوراي غير منطقي حل كردم ولي ممنون ميشم اگه بگيد منظورتون از رويداد onpaint چيه چون من onpaint رو شكل يه تابع مي بينم نه رويداد( من تا حالا ازش استفاده نكردم)

hassan razavi
چهارشنبه 11 اردیبهشت 1387, 11:27 صبح
منظورم رویداد Paint هست

PC2st
چهارشنبه 11 اردیبهشت 1387, 20:34 عصر
من در رويداد SizeChanged اندازه و محل كنترل ها رو تغيير ميدم مشكلي كه من دارم اينهكه مي خوام فقط موقع اجراي برنامه هام اين رويداد فراخواني بشه و تغيرات روي اندازه و محل كنترل ها به وجود بياد ولي حتي موقعي هم كه خودم دارم تو design برنامه اندازه groupbox رو تغيير ميدم هم اندازه كنترل ها تغيير ميكنه
در جایی که کدهای کنترل نوشته شده، هر وقت خواستین ببینین که کنترل در چه وضعیتی داره کار میکنه (در حالت Design (طراحی) یا اجرا)، از خاصیت this.DesignMode برای صحت آن میشه استفاده کرد.