PDA

View Full Version : سوال در مورد لود فرم در صورت ابزارهای زیاد



Vidico
دوشنبه 09 آذر 1394, 15:35 عصر
سلام و خسته نباشید :قلب:

اگر کل برنامه رو توی یک فرم طراحی کنیم (در تب های مختلف به جای فرم های مختلف)

مثلا: یک ابزار تب بذاریم و صد تا تب بهش اضافه کنیم و توی هر تب یه قسمتی از برنامه رو طراحی کنیم (به جای یک فرم جدید) بعد توی لود فرم همه تب هارو visible و اینیبل کنیم، بعدش هر موقع لازم شد تب مورد نظر رو از حالات فوق در بیاریم

اگه اینجوری باشه فرم خیلی سنگین میشه؟؟ ممنون میشم نظرتون رو در این مورد بیان کنید :چشمک:

abdullah20
دوشنبه 09 آذر 1394, 17:04 عصر
دوست عزیز سنگین شدن به کنار
ایا این طراحی استاندارد است به نظر شما؟
هر نرم افزاری ظاهر خودش ر ا میطلبه

Mahmoud Zaad
دوشنبه 09 آذر 1394, 18:11 عصر
سلام
نه شما باید مثل سابق نرم افزار رو در فرمهای مختلف طراحی کنید. بعد در فرم اصلی یک تب کنترل بدون تب پیج قرار بدید و موقعی که کاربر خواست فرمی رو باز کنه شما اون فرم رو در یک تب پیج باز می کنید و تب رو به تب کنترل اضافه می کنید.

Vidico
دوشنبه 09 آذر 1394, 18:13 عصر
دوست عزیز سنگین شدن به کنار
ایا این طراحی استاندارد است به نظر شما؟
هر نرم افزاری ظاهر خودش ر ا میطلبه

بله حق با شماست، منتها من از دات نت بار که استفاده می کنم ، و ظاهر فرمم اینجوری خوب و خوشگل میشه، وقتی مشتری روی چیزی کلیکک می کنه تبی فعال میشه و دیگه نیازی به صفحه دیگه نداره، بخاطر همون تب رو دوست داشتم
اگه واقعا سنگین میشه که هیچ
البته چرا باید سنگین بشه؟؟؟ آخه تو لود فرم همه تب ها رو غیر فعال و مخفی می کنیم و تب اجرا نمیشه که؟ میشه؟

Vidico
دوشنبه 09 آذر 1394, 18:17 عصر
سلام
نه شما باید مثل سابق نرم افزار رو در فرمهای مختلف طراحی کنید. بعد در فرم اصلی یک تب کنترل بدون تب پیج قرار بدید و موقعی که کاربر خواست فرمی رو باز کنه شما اون فرم رو در یک تب پیج باز می کنید و تب رو به تب کنترل اضافه می کنید.

تب کنترل بدون تب پیج؟؟ اصلا متوجه نشدم
من از supertabcontrol کامپوننت dotnetbar استفاده می کنم

Mahmoud Zaad
دوشنبه 09 آذر 1394, 18:28 عصر
تب کنترل بدون تب پیج؟؟ اصلا متوجه نشدم
من از supertabcontrol کامپوننت dotnetbar استفاده می کنم

من با کامپوننت کار نمی کنم. اگه در ابزارهای استاندارد خود ویژوال استودیو نگاه کنید یه کنترلی هست به اسم TabControl که به تب ها یا برگه های این کنترل میگن tabPage. قاعدتاً کامپوننتی که شما می گید باید شبیه همین کنترل باشه. در حالتی که عرض کردم دیگه فرم اصلی به هیچ وجه سنگین نمیشه. در روش شما که به هیچ وجه اصولی نیست همه تبها ساخته میشن و با سرعت پایینی که کامپوننت ها دارن و تعداد زیاد تب، فکر کنم کاربر چند دقیقه ای باید منتظر باشه تا برنامه بالا بیاد. حالا از شلوغی کدها در فرم هم بگذریم. شما روشی که عرض کردم رو دنبال کنید. این عبارت رو هم در گوگل جستجو کنید تا روش کار رو ببینید: open form in tabpage C#‎‎‎

------------------- ویرایش

شما به همین ویژوال استودیو هم دقت کنید دقیقاً همین کار رو انجام میده. یعنی شما در پروژه تون nتا فرم دارید بعد روی فرم ها که دابل کلیک می کنید یه تب جدید در ویژوال استودیو باز میشه و ...

Vidico
دوشنبه 09 آذر 1394, 19:03 عصر
من با کامپوننت کار نمی کنم. اگه در ابزارهای استاندارد خود ویژوال استودیو نگاه کنید یه کنترلی هست به اسم TabControl که به تب ها یا برگه های این کنترل میگن tabPage. قاعدتاً کامپوننتی که شما می گید باید شبیه همین کنترل باشه. در حالتی که عرض کردم دیگه فرم اصلی به هیچ وجه سنگین نمیشه. در روش شما که به هیچ وجه اصولی نیست همه تبها ساخته میشن و با سرعت پایینی که کامپوننت ها دارن و تعداد زیاد تب، فکر کنم کاربر چند دقیقه ای باید منتظر باشه تا برنامه بالا بیاد. حالا از شلوغی کدها در فرم هم بگذریم. شما روشی که عرض کردم رو دنبال کنید. این عبارت رو هم در گوگل جستجو کنید تا روش کار رو ببینید: open form in tabpage C#‎‎‎‎

------------------- ویرایش

شما به همین ویژوال استودیو هم دقت کنید دقیقاً همین کار رو انجام میده. یعنی شما در پروژه تون nتا فرم دارید بعد روی فرم ها که دابل کلیک می کنید یه تب جدید در ویژوال استودیو باز میشه و ...

والله همین ابزار کامپوننت هم دقیقا همین تب هست دیگه حالا طبق گفته شما باید بیائیم یه کاری کنیم که تب های تب کنترل هر کدومش یه فرمی رو باز کنه!
جستجو گردم منتها مطالب انگلیسی بودن و سر در نیاوردم ولی همچین چیزی هست مطالب زیادی در این راجع بودگ
نمونه سورس ندارین؟
که یه تب کنترل داشته باشه با دو ، سه تا فرم که تب ها لودش کنن؟

Mahmoud.Afrad
دوشنبه 09 آذر 1394, 19:14 عصر
میتونی به جای فرم، یوزرکنترل طراحی کنی و هر وقت نیاز داشتی ازش نمونه بسازی و به تب کنترل اضافه کنی و هر وقت نیاز نبود dispose کنی.

Vidico
دوشنبه 09 آذر 1394, 19:31 عصر
میتونی به جای فرم، یوزرکنترل طراحی کنی و هر وقت نیاز داشتی ازش نمونه بسازی و به تب کنترل اضافه کنی و هر وقت نیاز نبود dispose کنی.

ممنون از راهنمائیتون
والله راستش من تا الان کلی تب شاید 19 تا تب پر ابزار درست کردم ولی فرمم سنگین نشده! ولی گفته دوستان یه ذره به فکر انداخته منو که آیا اگه تب هام بازم زیاد بشه و ابزارهام زیاد بشه اون موقع دیگه کارم گیره! پس نتیجتا باید به فکر چاره و الاج باشم
حالا طبق نظر د وستان ببینم کدوم روش خوبه که برم سراغش و یاد بگیرم
:قلب:

Vidico
سه شنبه 10 آذر 1394, 21:39 عصر
دوستان راهنمائی نمی کنید؟

Mahmoud Zaad
چهارشنبه 11 آذر 1394, 11:51 صبح
یه کدی مثل زیر لازمه:

Form1 f1 = new Form1();
f1.TopLevel = false;
f1.WindowState = FormWindowState.Maximized;
f1.FormBorderStyle = FormBorderStyle.None;

TabPage tpF1 = new TabPage("فرم 1");
tpF1.Controls.Add(f1);
tabControl1.TabPages.Add(tpF1);

f1.Show();

tabControl1.SelectTab(tpF1);

کدها رو در رویداد کلیک دکمه یا منویی که قرار هست فرم رو باز کنه قرار بدید.

Vidico
چهارشنبه 11 آذر 1394, 13:45 عصر
یه کدی مثل زیر لازمه:

Form1 f1 = new Form1();
f1.TopLevel = false;
f1.WindowState = FormWindowState.Maximized;
f1.FormBorderStyle = FormBorderStyle.None;

TabPage tpF1 = new TabPage("فرم 1");
tpF1.Controls.Add(f1);
tabControl1.TabPages.Add(tpF1);

f1.Show();

tabControl1.SelectTab(tpF1);

کدها رو در رویداد کلیک دکمه یا منویی که قرار هست فرم رو باز کنه قرار بدید.

کاملا درست کار می کنه دست شما هم درد نکنه داداشی
حالا با supertab کامپوننت dotnetbar چطور میشه تب رو اضافه کرد؟