PDA

View Full Version : پنهان کردن یک برگه از برگه‌هاى TabControl



SabaSabouhi
پنج شنبه 17 اسفند 1385, 11:55 صبح
با سلام
در یک TabControl نیاز دارم که یکى از برگه‌ها رو پنهان کنم. اما نه متد Hide عمل مى‌کنه و نه خاصیت Visible. کد من هم اینه:



int MyIndex = tbPack.TabPages.IndexOfKey( "MyTab" );
if (MyIndex>-1)
tbPack.TabPages[MyIndex].Visible = false;


متاسفانه با وجود این که MyIndex مقدار رو درست برمى‌گردونه و ظاهراً هیچ مشکلى هم وجود نداره اما با این وجود برگه‌ى مورد نظر هنوز هم دیده مى‌شه.

صبا صبوحى

پ.ن: از Visual Studio 2005 استفاده مى‌کنم.

whitehat
پنج شنبه 17 اسفند 1385, 12:48 عصر
متد hide را امتحان کردید؟


tbPack.TabPages[MyIndex].Hide();

SabaSabouhi
شنبه 19 اسفند 1385, 20:34 عصر
با سلام
بله دوست عزیز، اگه متن رو دوباره بخونید خواهید دید که گفتم نه متد Hide عمل مى‌کنه و نه خاصیت Visible.
فعلاً مشکل رو دور زدم. یعنى بجاى Hide کردن با خشونت TabPage رو Remove مى‌کنم. اما خیلى دوست دارم روش درست این کار رو یاد بگیرم.

صبا صبوحى

سار
یک شنبه 20 اسفند 1385, 11:39 صبح
دقیقن این یکی از باگهای این محصول است.
من کدی برای این عمل دارم ولی متاسفانه العان در دسترس نیست.
اگر تا فردا مشکل حل نشد برایتان ارسال خواهم کرد.

SabaSabouhi
یک شنبه 20 اسفند 1385, 22:15 عصر
با سلام
فعلاً با Remove کردن و Add کردن برگه مشکل رو دور زدم.
اما باید راه حل درستى داشته باشه، اگه این یک Bug هست باید انتظار داشت که در ServicePack 1.0 که آمده و یا در ServicePackهاى بعدى حل بشه. من براى نصب ServicePack مجبورم اول نسخه‌ى TeamSuit رو بخرم، چون فقط SP رو براى اون تونستم بگیرم. اگه نصب کردم و درست شد حتماً اطلاع مى‌دم.

صبا صبوحى

SYSMAN
دوشنبه 21 اسفند 1385, 16:19 عصر
من روی VS2005 Team Suit با SP1 هم امتحان کردم جواب نمی دهد.

nasr
پنج شنبه 20 دی 1386, 11:36 صبح
;کسی نمی دونه چطور میشه؟

mohammad272005
دوشنبه 24 دی 1386, 01:56 صبح
یه WindowsApplication درست کردم، یه TabControl تو Form1 انداختم. چندتا TabPage بهش اضافه کردم. دوتا Button هم تش انداختم.

using System;
using System.Collections.ObjectModel;
using System.Windows.Forms;
namespace WindowsFormsApplication4
{
publicpartialclassForm1 : Form
{
public Form1()
{
InitializeComponent();
}
privatevoid button1_Click(object sender, EventArgs e)
{
ControlHelper.SetVisible(this.tabPage3, true);
}
privatevoid button2_Click(object sender, EventArgs e)
{
ControlHelper.SetVisible(this.tabPage3, false);
}
}
publicstaticclassControlHelper
{
privatestaticCollection<TabPageInfo> _TabPages = newCollection<TabPageInfo>();
publicstaticvoid SetVisible(TabPage tabPage, bool visible)
{
if (visible)
{
foreach (TabPageInfo tabPageInfo in _TabPages)
{
if (tabPageInfo.TabPage == tabPage)
{
tabPageInfo.Parent.TabPages.Insert(tabPageInfo.Ind ex, tabPage);
_TabPages.Remove(tabPageInfo);
break;
}
}
}
else
{
foreach (TabPageInfo tabPageInfo in _TabPages)
{
if (tabPageInfo.TabPage == tabPage)
return;
}
TabControl parent = ((TabControl)tabPage.Parent);
_TabPages.Add(newTabPageInfo(parent, tabPage, parent.TabPages.IndexOf(tabPage)));
parent.TabPages.Remove(tabPage);
}
}
}
classTabPageInfo
{
publicTabControl Parent
{
get;
privateset;
}
publicTabPage TabPage
{
get;
privateset;
}
publicint Index
{
get;
privateset;
}
public TabPageInfo(TabControl parent, TabPage tabPage, int index)
{
this.Parent = parent;
this.TabPage = tabPage;
this.Index = index;
}
}
}