سلام
در برنامه چندتا tabpage دارم .... با چه کدی میتونم بگم اگر تب پیج 1 فعال بود یکسری دستورات و اگر تب پیج 2 فعال بود یکسری دستورات دیگه رو اجرا کنه؟
سلام
در برنامه چندتا tabpage دارم .... با چه کدی میتونم بگم اگر تب پیج 1 فعال بود یکسری دستورات و اگر تب پیج 2 فعال بود یکسری دستورات دیگه رو اجرا کنه؟
سلام
شما می تونی شماره tab page رو با کد زیر بگیری و بعد روش switch کنی.
MessageBox.Show((tabControl1.SelectedIndex+1).ToSt ring());
اینکه معلومه!!
چون شماره Tab pageها از صفر شروع میشه و ما با 1 جمع می کنیم تا از 1 شروع بشه،البته شما می تونی نذاری
بستگی به خودتون داره
از رويداد SelectedIndexChanged مربوط به tabcontrol استفاده كن
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
if (tabControl1.SelectedTab == tabPage1)
{
MessageBox.Show("tabPage1");
}
else
if (tabControl1.SelectedTab == tabPage2)
{
MessageBox.Show("tabPage2");
}
else
if (tabControl1.SelectedTab == tabPage3)
{
MessageBox.Show("tabPage3");
}
}
برای اینکه بدونی ایندکس تب جاری کدومه می تونی از tabControl1.SelectedIndex استفاده کنی ولی این راه درستی نیست چون شاید زمانی تصمیم بگیری که ترتیب تب ها رو توی تب کنترل عوض کنید اونوقت این کدهایی که نوشتی به لحاظ منطقی دچار مشکل می شن!
راه بهتر اینه که از tabControl1.SelectedTab استفاده کنی که خود کنترل تب جاری رو می ده و اینطوری با جابجایی تب مشکلی ایجاد نمی شه
راهی رو که amireto گفتن موقعی استفاده می شه که بخوایم با تغییر تب جاری کدی اجرا بشه یعنی کدی رو که توی SelectedIndexChangedمی نویسیم با تغییر تب جاری اجرا می شه که فکر کنم احتمالا مد نظر شما نیست
میتونی یک متغییر تعریف کنی و بهش عدد صفر بدی.
رویداد click هر تب رو ریز کنی و هر بار کلیک میشه روی هر تب یک عدد خاص رو توی متغییر بریزی مثلا تب دوم عدد 1 رو برای متغییر ست کنه و الی آخر.
هر وقت خواستی میتونی عدد داخل متغییر رو ببینی چنده و تبت رو متوجه بشی
اینجوری نوشتم جواب داد:
تو کلاس متفیر تعریف کردم
بعد گفتم اگر selectedindex تبپیج 1 بود ... تو متغیر کلاس عدد مثلا 1 بریز(عدد هر تب پیج رو با if اینجوری ریختم تو کلاس.)
بعد تو دکمه که گفتم اگر متغیر کلاسم مثلا 1 بود .... دستوراتی میخواستم تو تبپیج 1 نوشته شه رو دادم و همین طور 10 tabpage دیگه رو!!!
خلاصه جواب داد!
به نظرتون راهم خوب بوده؟؟
(میخواستم کدو بذارم اما شلوغ میشد!)
آخرین ویرایش به وسیله nazanin_z : جمعه 22 مهر 1390 در 16:37 عصر
هر کاری کردم با switch بنویسم نشد
از این کد استفاده کن
private void tabControl1_Selected(object sender, TabControlEventArgs e)
{
if (e.TabPage == tabPage1)
{
this.Text = ":D";
MessageBox.Show("Selected Tab Is " + tabPage1.Name);
}
else if (e.TabPage == tabPage2)
{
MessageBox.Show("Selected Tab Is " + tabPage2.Name);
}
else
{
MessageBox.Show("Selected Tab Is " + "I Dont Know ...! :D");
}
}
و
private void Form1_Shown(object sender, EventArgs e)
{
tabControl1_Selected(this, new TabControlEventArgs(tabPage1, 0, TabControlAction.Selected));
}