PDA

View Full Version : dock



pooyansystem
چهارشنبه 19 دی 1386, 10:21 صبح
نمی دونم عنوانی که برای تایپک انتخاب کردم درست هست یا نه ولی چیز دیگه ای به ذهنم نرسید
من یه فرم پدر دارم که چند فرم فرزند داره میخوام وقتی کاربر فرم های فرند رو با موس جابه جا میکنه این امکان وجود داشته باشه که فرم ها در یک گوشه خاصی از فرم پدر قرار بگیرند برای اینکه منظور من رو متوجه بشید پنجره properties و solution explorer خود .net رو امتحان کنید وقتی یکی از اونها رو جابه جا می کنید یه سری علائم جهت دار به شما نشون میده که می تونید با کمک اون این پنجره ها رو در جای خاصی قرار بدید مثلا اونها رو زیر هم یا کنار هم یا در گوشه های مختلف صفحه
می خواستم ببینم چنین امکانی در #C هست یا نه
ممنون

reza_rad
چهارشنبه 19 دی 1386, 10:29 صبح
بهتره برای اینکار با panel ها کار کنید. یعنی در فرم اصلی تون Panel ها رو اضافه کنید.
بعد توی ایونت های مربوط به پنل ها اون ها رو hide کنید.یا اینکه اونها رو نشون بدید. یا اینکه dock شون رو تنظیم کنید. یا حتی یک فرم جدید باز کنید که از این پنل یک نمنوه توش اضافه بشه.
ضمنا برای اینکه پنل ها تون بتونند در حالت dock سایزشون تغییر کنه بهتره از splitter هم استفاده کنید.
این سناریوی کار بود. ولی برای detail پیاده سازی بسته به استفاده شما تغییر می کنه.

pooyansystem
چهارشنبه 19 دی 1386, 10:33 صبح
آقای راد آیا نمونه ای از این کار دارید که برای من ارسال کنید

reza_rad
چهارشنبه 19 دی 1386, 10:41 صبح
من یکبار یک نمونه شبیه به این در یک شرکت نوشتم. منتها از اونجا که اومدم بیرون سورس هم اونجا موند! بخاطر دلایل امنیتی شرکت!
اما شما می تونید پیاده سازی کنید و من و دیگر دوستان اینجا هر قسمتی که سوال داشتید اگه بتونیم کمکتون کنیم.
ولی در کل پیاده سازی چنین پنل هایی که بتونند dockable باشند و قابلیت هایی مثل پنل های VStudio و ... داشته باشند، کار ساده ای نیست. نیاز به زمان و حوصله زیادی داره.
کامپوننت هایی مثل جانوس و یا DevExpress هم هستند که چنین پنل هایی رو خیلی قدرتمند پیاده سازی کرده اند. ولی به شخصه معتقدم استفاده از کامپوننت برنامه نویس رو محدود می کنه که از قواعد خاص اون کامپوننت پیروی کنه. من به شخصه ترجیحم اینه که خودم چنین ابزارهایی رو در صورت وقت داشتن بنویسم.

pooyansystem
چهارشنبه 19 دی 1386, 13:14 عصر
من برای این کار وقت زیادی ندارم آیا امکانش هست که این کامپوننت ها رو به من معرفی کنید تا من بتونم اونها رو تهیه کنم اسم این کنترل چیه من باید دنبال چه چیزی باشم.
در ضمن یه نفر به من گفت هر آنچه که خود vs از اون استفاده کرده به عنوان یه control تو اون وجود داره و میشه از اونها تو برنامه ها استفاده کرد آیا این حرف صحت داره یا نه؟
ممنون

reza_rad
چهارشنبه 19 دی 1386, 13:34 عصر
این کامپوننت ها مال Microsoft نیست. شرکت های دیگه تولید کرده اند.
Janus (http://www.componentsource.com/features/janus-systems/index.html)
DevExpress (http://www.devexpress.com/)
SyncFusion (http://www.syncfusion.com/)
...

البته تمام این کامپوننت ها پولی هستند و باید آنها را بخرید.

mamali_programer
چهارشنبه 19 دی 1386, 14:31 عصر
سلام دوست عزیز
شاید بهتر باشه از کنترل FlowLayoutPanel استفاده کنی . و همچنین می تونی از TableLayoutPanel استفاده کنی