PDA

View Full Version : ایجاد کنترلی مشابه Tab Control



mmbguide
جمعه 04 فروردین 1396, 00:07 صبح
سلام

یه کنترل میخوام بسازم که از دو Panel اصلی تشکیل میشه. پانل بالا شامل تعدادی Button هست که کاربر با کلیک روی هر یک میتونه محتویات مربوط به اون رو مشاهده کنه. در واقع پانل پایینی خودش شامل چندین Panel درون خودش هست که روی هم قرار گرفته. اما مشکل من:

در زمان طراحی کنترل باید چکار کنم که کابر در زمان Design Mode با کلیک روی دکمه های بالا بتونه Panel مربوطه رو مشاهده کنه (در حقیقت BringToFront بشه) و بتونه در اون Pannel اشیاء مورد نظرشو قرار بده (ماننده Tab در Ribbon)

تشکر

hamid_hr
شنبه 05 فروردین 1396, 10:00 صبح
اگه از نظر طراحی مشکل نداشته باشه میشه اینطوری یک پنل رو نمایش داد
Panel.BringToFront();

ebrahim.rayatparvar
شنبه 05 فروردین 1396, 11:15 صبح
الان خودتون دارین میگن تب میخواین پس از کنترل تب استفاده کنید هم vs داره هم هر کامپوننتی رو که نصب کنید داره.

ebrahim.rayatparvar
شنبه 05 فروردین 1396, 11:16 صبح
اگه منظورتون چیز دیگه ای هست با یه نقاشی ساده با پینت منظورتون رو بگین شاید دوستان هم مثل من منظورتون رو بد متوجه بشن.

mmbguide
شنبه 05 فروردین 1396, 15:53 عصر
سلام

فرض کنیم که همون TabControl باشه. می خواستم بدونم میشه از ابتدا TabControl ساخت؟ چون در خصوص ساخت CustomControl خیلی اطلاعات ندارم و خودم اینطور کار کردم:

یک UserControl ایجاد کردم و دوتا Panel قراردادم. یکی بالا و دیگری پایین. در رویداد ContorlAdded پانل بالایی دستوری نوشتم که به محض تشخیص کنترل اضافه شده توسط EndUser در زمان طراحی فرم، دکمه رو با تنظیماتی که تعیین کردم به پانل بالایی اضافه میکنه و هم همزمان در پانل پایینی یه Panel جدید Add میکنه که کاربر بتونه اشیاء مورد نظرشو داخل اون قرار بده.

میشه گفت شبیه RibbonControl عمل میکنه. اما با افزایش تعداد دکمه ها تعداد پانل های فرعی در پانل پایینی نیز افزایش پیدا میکنه. سوالم اینه که اون دستوری رو که عنوان کردید چطور میتونه در حالت طراحی فرم عمل کنه نه بعد از اجرای فرم. در حقیقت کاربر در زمان طراحی بتونه با انتخاب دکمه های اضافه شده در پانل بالایی بین پانل ها جابجا بشه. مثل کلیک روی Tabهای RibbonControl در زمان طراحی فرم های برنامه و یا همون TabControl.

امیدوارم مطلب رو رسوند باشم.

تشکر

hamid_hr
دوشنبه 07 فروردین 1396, 10:17 صبح
رویداد paint جزو رویدادهایی هست که زمان طراحی کدهاش اجرا میشه. میتونی رویداد paint باتن رو فعال و ازش استفاده کنی. البته شاید راه بهتری برا این کار باشه.