PDA

View Full Version : چگونه وجود یه تب را برسی کنم و اگر بود اونو نشون بده؟



دل تنها
شنبه 28 اردیبهشت 1392, 09:09 صبح
باسلام خدمت دوستان گلم من یه مشکلی برام پیش اومده من یه برنامه دارم که فرمها به صورت تب باز میشه
مشکل من اینه که چطور میتونم بفهمم وقتی کاربر برای بار دوم یا بار چندم روی دکمه کلیک میکنه اگه تب مربوط به اون فرم باز باشه اونو نشون بده نه اینکه دوباره همون فرم رو به صورت تب دیگه باز کنه اگه با کد بزارین خیلی ممنون میشم

Mahmoud.Afrad
شنبه 28 اردیبهشت 1392, 09:51 صبح
tabpage یا فرم؟ کد ایجاد تب رو بزار.

دل تنها
شنبه 28 اردیبهشت 1392, 10:06 صبح
uiTab1.BackColor = System.Drawing.Color.WhiteSmoke;
Form3 f3 = new Form3();
f3.TopLevel = false;
f3.MdiParent = this;
f3.Dock = System.Windows.Forms.DockStyle.Fill;
f3.Location = new System.Drawing.Point(5, 4);
f3.AutoScroll = true;

System.Windows.Forms.Panel panel4;
panel4 = new Panel();

panel4.Name = "pform2";

panel4.Dock = System.Windows.Forms.DockStyle.Fill;
panel4.Location = new System.Drawing.Point(4, 22);
panel4.Name = "panel4";
panel4.Size = new System.Drawing.Size(495, 393);
panel4.TabIndex = 10;

Janus.Windows.UI.Tab.UITabPage tab2;
tab2 = new Janus.Windows.UI.Tab.UITabPage();
tab2.Location = new System.Drawing.Point(1, 21);
tab2.Name = "uiTabPage2";
tab2.Size = new System.Drawing.Size(496, 391);
tab2.AutoScroll = true;
tab2.TabStop = true;
tab2.Text = "New Tab";
uiTab1.TabPages.Add(tab2);
tab2.Controls.Add(panel4);
panel4.Controls.Add(f3);
tab2.Selected = true;
tab2.AutoScroll = true;
f3.Show();

دل تنها
شنبه 28 اردیبهشت 1392, 10:12 صبح
ببینید من میخوام وقتی کاربر یکبار روی دکمه کلیک کرد یه تب پیج ایجاد بشه اما وقتی برای بار دوم یا چندمین بار وقتی میزنه در صورتی تب پیج مربوطه باز باشه همونو نشون بده و اگر باز نبود دوبار تب پیج رو ایجاد کنه

Mahmoud.Afrad
شنبه 28 اردیبهشت 1392, 10:44 صبح
جانوس ندارم ولی
به هر تب یک اسم باید بدی که دادی. براساس همین اسم میتونی چک کنی آیا تبی با این اسم از قبل وجود داره یا نه. اگر نه تب رو ایجاد و add میکنی.

براساس تب کنترل خود ویژوال استادیو از متد ContainsKey استفاده کنید(name به عنوان key هست):
همان نامی که به تب اختصاص میدهید را در if چک کنید.

if (!tabControl1.TabPages.ContainsKey("tttttttt"))
{
TabPage tp = new TabPage();
tp.Name = "tttttttt";
tabControl1.TabPages.Add(tp);
}



حالا نمیدونم جانوس متدContainsKey یا چیزی شبیه اینو داره یا نه.

دل تنها
شنبه 28 اردیبهشت 1392, 11:36 صبح
خیلی ممنون دوست عزیز نه نداره متد Contains داره یعنی نمیشه کاری کرد؟

Mahmoud.Afrad
شنبه 28 اردیبهشت 1392, 12:09 عصر
اینو امتحان کن:

string tabName = "uiTabPage2";

foreach (Janus.Windows.UI.Tab.UITabPage tp in uiTab1.TabPages)
{
if (tp.Name == tabName)
{
uiTab1.SelectedTab = tp;
return;
}
}

Panel panel4 = new Panel();
panel4.Name = "pform2";
panel4.Dock = System.Windows.Forms.DockStyle.Fill;
panel4.Location = new System.Drawing.Point(4, 22);
panel4.Name = "panel4";
panel4.Size = new System.Drawing.Size(495, 393);
panel4.TabIndex = 10;

Form3 f3 = new Form3();
f3.TopLevel = false;
f3.Dock = System.Windows.Forms.DockStyle.Fill;
f3.Location = new System.Drawing.Point(5, 4);
f3.AutoScroll = true;

panel4.Controls.Add(f3);
f3.Show();

Janus.Windows.UI.Tab.UITabPage tab2 = new Janus.Windows.UI.Tab.UITabPage();
tab2.Location = new System.Drawing.Point(1, 21);
tab2.Name = tabName;
tab2.Size = new System.Drawing.Size(496, 391);
tab2.AutoScroll = true;
tab2.TabStop = true;
tab2.Text = "New Tab";
tab2.Controls.Add(panel4);

uiTab1.BackColor = System.Drawing.Color.WhiteSmoke;
uiTab1.TabPages.Add(tab2);
uiTab1.SelectedTab = tab2;

دل تنها
شنبه 28 اردیبهشت 1392, 12:43 عصر
دوست عزیز اینم نشد

دل تنها
شنبه 28 اردیبهشت 1392, 12:46 عصر
خیلی عذر میخوام دوست عزیز ممنون درسته کد شما بله شد خیلی خیلی ازتون ممنونم

دل تنها
یک شنبه 29 اردیبهشت 1392, 09:56 صبح
دوست عزیز کد شما درسته اما یه مشکل داره اونم اینکه وقتی یه تب رو باز میکنی و میبندی و وقتی دوباره میخوای باز کنی باز نمیکنه؟اینو چیکار باید بکنیم؟

Mahmoud.Afrad
یک شنبه 29 اردیبهشت 1392, 10:07 صبح
چجوری میتندی؟

دل تنها
یک شنبه 29 اردیبهشت 1392, 10:19 صبح
خوب با دکمه closeکه خود uitabجنیوس داره میشه تبها رو بست