فرم های فرزند خود را به صورت maximize در فرم Main باز کنید
امکان جابهجایی بین tabها ، داشتن button کنار tab برای بستن فرم فرزند
حتما دانلود کنید...
http://uplod.ir/xlwj4pwrma79/Windows...ation1.rar.htm
فرم های فرزند خود را به صورت maximize در فرم Main باز کنید
امکان جابهجایی بین tabها ، داشتن button کنار tab برای بستن فرم فرزند
حتما دانلود کنید...
http://uplod.ir/xlwj4pwrma79/Windows...ation1.rar.htm
لینک دانلود کار نمیکنه
لینکش درسته
آقا کار قشنگی بود، تشکر. مردیم از بس showdialog کرده بودیم. فقط یه سوال: چطور میشه از باز شدن بیشتر از یک بار هر تب جلوگیری کرد؟. یعنی وقتیکه فرم 1 باز شد دیگه با کلیک کردن نشه یه فرم1 دیگه باز کرد.
محمد جان به جاي كد :
private void فرم1ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form1 frm = new Form1();
TabAdd(frm);
}
از اين كد استفاده كن.
private void فرم1ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form1 frm = new Form1();
int State = -1;
for (int i = 0; i < TabChildForm.Items.Count; i++)
if (TabChildForm.Items[i].Name == frm.Name)
{
State = 1;
break;
}
if (State == -1)
TabAdd(frm);
}
روشش بهينه نيست ولي كار ميكنه
برای اینکه بیش از یک باز باز نشه و اگر دوباره کاربر بر روی منو کلیک کرد تا فرم باز بشه روش Focus کنه این کد در رویداد کلیک باز کردن پنجره بزارین...
if (Application.OpenForms["Acc_Hesab"] == null)
{
Acc_Hesab.Acc_Hesab Acc_Hesab = new Acc_Hesab.Acc_Hesab();
TabAdd(Acc_Hesab);
}
else
{
foreach (Form frm inApplication.OpenForms)
{
if (frm.Name == "Acc_Hesab")
frm.Focus();
}
}
آخرین ویرایش به وسیله saeedhushmand : شنبه 22 مهر 1391 در 00:48 صبح
دانلود کردم، کار جالبی بود. ممنون. جهت فقط 1 بار باز شدن فرم ها می تونین برای هر فرم یه متغیر Bool تعریف کنین که با باز شدن فرم ، مقدار true و در زمان بسته شدن مقدار false بگیره . زمان کلیک بر روی منوها اول باید چک شود که مقدار متغییر مربوط به اون فرم true هست یا false اگه false بود ، فرم Load بشه.
دوست عزیز ممنون از نظرتون کدی که در پست بالا گذاشتم به نظرم ساده ترین کدیه که می شه برای جلوگیری از بازشدن مجدد فرم استفاده کرد
پروژه ی بسیار جالبی ست
اما نکته ای که باید بگم اینه که از این پروژه می توان الگوهای بسیار زیادی را به کار گرفت
دوستان برای بهینه کردن این پروژه نظرات را اعلام کنند.
و نکته دیگر این که اشکالاتی هم در بر داره
اگر تعداد فرم از یک tab فراتر رفت چه اتفاقی باید رخ بده؟
به نظر من سبکی که محیط ویژوال استادیو داره استفاده می کنه را در این پروژه پیاده کرد
آیا می شه چنین چیزی پیاده کرد؟
Untitled.jpg
میشه منظورتون رو بیشتر توضیح بدید.
سبک باز شدن پنجره ها در نوع خودش جالب و نو هستش و به مراتب بهتر از showdialog كرىن پنجره ها هستش.
من اولین بار چند وقت پیش توی یه نرم افزار این بک باز شدن پنجره ها رو دیدم که در واقع فقط تب اضافه میشد. من فکر میکردم که از یه کامپوننت خاص استفاده میکردن.
این مشکل رو ندارهاگر تعداد فرم از یک tab فراتر رفت چه اتفاقی باید رخ بده؟
به نظر من سبکی که محیط ویژوال استادیو داره استفاده می کنه را در این پروژه پیاده کرد
آیا می شه چنین چیزی پیاده کرد؟
1.jpg
يكي از مشكلاتش اينه كه عنوان تب Active مشخص نيست مثلا ميشه رنگ لیبل نام تب Active رو متمايز كرد.
و يا يكي ديگه از مشكلاتش بستن تب هستش كه وقتي چند تب به صورت همزمان بازه رو هر كدوم از ضربدرهاي بستن تب ها كليك شه همون تب Active بسته میشه نه اون تبی که داریم رو علامت ضربدرش کلیک میکنیم
چطوری می شه کاری کرد که علامت close فقط برای فرمی مشخص باشه که فعال هستش
دقیقا مثل محیط ویژوال استادیو
12.JPG
اینم فایل جدیدش
WindowsFormsApplication1.rar
البته با اجازه دوستمون saeedhushmand که زحمت اصلی کد اولیه رو ایشون کشیدن.
دوست عزیز ممنون ایده ی جالبی بود...