PDA

View Full Version : سوال: امکان باز شدن فرم ها بصورت Tab menu همانند بازشدن فرم ها و صفحه کد در خود محیط ویژوال استدیو



messi_rezai
شنبه 31 فروردین 1392, 15:49 عصر
باسلام خدمت مهندسین عزیز
من بنده به جهت کاربر پسند کردن پروه تحت ویندوز خودم(سیستم خرید و فروش) می خوام یه امکانی که تو محیط ویژوال استدیو وجود داره رو استفاده کنم
امکان باز شدن فرم ها بصورت Tab menu همانند بازشدن فرم ها و صفحه کد در خود محیط ویژوال استدیو
ممنون می شم کسی کامپوننت یا راه کارشو معرفی کنه
با سپاس رضایی::خجالت:

Pis7Aller
شنبه 31 فروردین 1392, 15:58 عصر
خب چرا از tab cotrol به جای ایجاد یک فرم جدید استفاده نمی کنید ؟

messi_rezai
یک شنبه 01 اردیبهشت 1392, 14:04 عصر
خب چرا از tab cotrol به جای ایجاد یک فرم جدید استفاده نمی کنید ؟

ببخشید می تونید بیشتر توضیح بدید
آیا قابلیت بستن هم داره؟
با تشکر...

vaheeed
یک شنبه 01 اردیبهشت 1392, 14:35 عصر
منظور دوستمون نمیدونم چی بود خودشون حتما میان کامل توضیح میدن ولی در مورد بسته شدن اره میشه بست

// Removes the selected tab:
tabControl1.TabPages.Remove(tabControl1.SelectedTa b);
// Removes all the tabs:
tabControl1.TabPages.Clear();
البته فکر میکنم شما میخوای علامت بسته شدن رو هر تب وجود داشته باشه ، پیدا کردی اینجا بزار منم خوشم میاد این شکلی کار کنم

veniz2008
یک شنبه 01 اردیبهشت 1392, 14:44 عصر
باسلام خدمت مهندسین عزیز
من بنده به جهت کاربر پسند کردن پروه تحت ویندوز خودم(سیستم خرید و فروش) می خوام یه امکانی که تو محیط ویژوال استدیو وجود داره رو استفاده کنم
امکان باز شدن فرم ها بصورت Tab menu همانند بازشدن فرم ها و صفحه کد در خود محیط ویژوال استدیو
ممنون می شم کسی کامپوننت یا راه کارشو معرفی کنه
با سپاس رضایی::خجالت:
سلام.
یه روزی من 1000 بار این سوال رو پرسیدم و کسی متوجه نشد منظور من چیه. امیدوارم منظورت همون چیزی باشه که من منظورم بود!!!
تاپیک زیر رو ببینید (کامل نیست ولی حداقلش اینه که بهت ایده میده. اگر کاملش کردی لطف کن بزارش توی همون تاپیک تا بقیه دوستان هم استفاده کنن).
http://barnamenevis.org/showthread.php?364591-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%DA%A9%D9%86%DB%8C%D8%AF-%D8%8C-%D9%81%D8%B1%D9%85-%D9%87%D8%A7%DB%8C-%D9%81%D8%B1%D8%B2%D9%86%D8%AF-%D8%AE%D9%88%D8%AF-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%B5%D9%88%D8%B1%D8%AA-maximize-%D8%AF%D8%B1-%D9%81%D8%B1%D9%85-Main-%D8%A8%D8%A7%D8%B2-%DA%A9%D9%86%DB%8C%D8%AF&highlight=%D9%81%D8%B1%D9%85+%D9%87%D8%A7%DB%8C+%D 9%81%D8%B1%D8%B2%D9%86%D8%AF
موفق باشید.

aliasghar2
یک شنبه 01 اردیبهشت 1392, 14:56 عصر
به نطر من می تونی از کنترل radDock استفاده کنی که تما امکانات شبیه vs رو بهت میده مخصوصا چیزی شبیه tabPage که اینجا به نام Document هست

Pis7Aller
یک شنبه 01 اردیبهشت 1392, 15:01 عصر
ببخشید می تونید بیشتر توضیح بدید
آیا قابلیت بستن هم داره؟
با تشکر...
می تونیم خودمون واسش بذاریم یعنی روی هر tab ای که ایجاد میشه گوشه سمت راستش یک button خیلی ریز بزاریم که با کلیک کردن بر روش بشه tab رو بست...... من خودم این کار رو واسه یکی از پروژه هام انجام دادم
ابتدا یک متغیر در نظر میگیریم تا تعداد تب هایی رو که داریم رو تو خودش نشون بده
int tab_number = 1;
الان یک متد تعریف کردم به نام cmdclosetab که میاد و هر وقت یک صفحه ای باز شد توش در سمت راستش یک picturebox (ازش به عنوان یه button استفاده کردم ) ریز درست می کنه :
void CMDCloseTab()
{
PictureBox CloseTab = new PictureBox();
CloseTab.Location = new Point(715, 5);
CloseTab.Size = new Size(20, 20);
CloseTab.BackgroundImage = Properties.Resources.BTNCloseTab;
CloseTab.MouseClick += CloseTab_MouseClick;
tabControl1.SelectedTab.Controls.Add(CloseTab);
CloseTab.BringToFront();
}
حالا اون event ای که واسه کلیک رو انتخاب کردم رو می نویسم

void CloseTab_MouseClick(object sender, MouseEventArgs e)
{
tabControl1.TabPages.Remove(tabControl1.SelectedTa b);
tab_number--;

try
{
tabControl1.SelectTab(tab_number - 1);
}
catch
{
}
}

امیدوارم به دردتون بخوره اگه باز هم سوالی بود در خدمتم

xxnagin
یک شنبه 01 اردیبهشت 1392, 16:10 عصر
سلام
این هم یه مدل دیگه که vb.net هستش

http://www.vbforums.com/showthread.php?622242-TabControl-with-Close-button-on-TabPages-(with-Design-Time-support)

messi_rezai
سه شنبه 03 اردیبهشت 1392, 12:59 عصر
منظور دوستمون نمیدونم چی بود خودشون حتما میان کامل توضیح میدن ولی در مورد بسته شدن اره میشه بست

// Removes the selected tab:
tabControl1.TabPages.Remove(tabControl1.SelectedTa b);
// Removes all the tabs:
tabControl1.TabPages.Clear();
البته فکر میکنم شما میخوای علامت بسته شدن رو هر تب وجود داشته باشه ، پیدا کردی اینجا بزار منم خوشم میاد این شکلی کار کنم

درسته منظورمو گرفتی...دقیقا مثه خود محیط ویژوال استدیو که فرم ها و صفه کد مربوط بهش رو بصورت تب باز میکنه که با دابل کلیک روش میشه یه پنجره جداگانه...که با درگ به جای خودش باز تبدیل به یه تب میشه

علی فتحی
یک شنبه 21 آبان 1396, 15:35 عصر
سلام : کامپونت دات نت بار داره موردی که شما گفتید . در مورد تب کنترل استفاده کردن مانند دوستان اشتباهه چون هنگام رمو اطلاعات رفرش نمیشه پس از همون کامپونت استفاده کنید.

javad.jaddi
دوشنبه 22 آبان 1396, 07:40 صبح
سلام دوست عزیز
من برای اینکار خیلی تو اینترنت دنبالش گشتم ولی کسی جوابی بهم نداد یا شایدم منظورم رو درست نمیرسوندم
آخرش به نتیجه زیر رسیدم و کاملا درست کار میکنه


Form sarfasl = new Form();
sarfasl.TopLevel = false;
sarfasl.WindowState = FormWindowState.Maximized;
sarfasl.FormBorderStyle = FormBorderStyle.None;
TabPage tb = new TabPage("سرفصل");
tb.Controls.Add(sarfasl);
tabControl1.TabPages.Add(tb);
sarfasl.Show();
tabControl1.SelectTab(tb);

علی فتحی
پنج شنبه 02 آذر 1396, 19:16 عصر
اینم نمونه
http://s9.picofile.com/file/8312541592/TAB.zip.html

barnamenevisjavan
جمعه 03 آذر 1396, 21:11 عصر
سلام دوست عزیز
من برای اینکار خیلی تو اینترنت دنبالش گشتم ولی کسی جوابی بهم نداد یا شایدم منظورم رو درست نمیرسوندم
آخرش به نتیجه زیر رسیدم و کاملا درست کار میکنه


Form sarfasl = new Form();
sarfasl.TopLevel = false;
sarfasl.WindowState = FormWindowState.Maximized;
sarfasl.FormBorderStyle = FormBorderStyle.None;
TabPage tb = new TabPage("سرفصل");
tb.Controls.Add(sarfasl);
tabControl1.TabPages.Add(tb);
sarfasl.Show();
tabControl1.SelectTab(tb);


اینم نمونه
http://s9.picofile.com/file/8312541592/TAB.zip.html

برای پیاده سازی این کار بهتره از WPF و معماری MVVM استفاده کنید.که به این کار Navigation میگن/ کافیه رابط کاربری هر بخش رو داخل Usercontrol ها طراحی کنید و داخل MainWindow اصلی ارتباط بدین

mamadelectro
یک شنبه 27 خرداد 1397, 10:31 صبح
سلام دوست عزیز
من برای اینکار خیلی تو اینترنت دنبالش گشتم ولی کسی جوابی بهم نداد یا شایدم منظورم رو درست نمیرسوندم
آخرش به نتیجه زیر رسیدم و کاملا درست کار میکنه


Form sarfasl = new Form();
sarfasl.TopLevel = false;
sarfasl.WindowState = FormWindowState.Maximized;
sarfasl.FormBorderStyle = FormBorderStyle.None;
TabPage tb = new TabPage("سرفصل");
tb.Controls.Add(sarfasl);
tabControl1.TabPages.Add(tb);
sarfasl.Show();
tabControl1.SelectTab(tb);

این راه حل بسیار زیباست . از شما سپاس گذارم دوست عزیز . اما مشکلی من با این نوع دارم اینه که مثلا اگه یه کلید کنسل درون این تب داشته باشیم و درون برنامه این کلید بنویسیم که فرم مربوطه درون اون تب رو ببند ، نمی توانم تب رو هم پاک کنم . اگه ممکنه کمک کنید .