PDA

View Full Version : tabpage فعال



nazanin_z
چهارشنبه 20 مهر 1390, 23:46 عصر
سلام
در برنامه چندتا tabpage دارم .... با چه کدی میتونم بگم اگر تب پیج 1 فعال بود یکسری دستورات و اگر تب پیج 2 فعال بود یکسری دستورات دیگه رو اجرا کنه؟

F.zeinali
پنج شنبه 21 مهر 1390, 01:49 صبح
سلام
شما می تونی شماره tab page رو با کد زیر بگیری و بعد روش switch کنی.

MessageBox.Show((tabControl1.SelectedIndex+1).ToSt ring());

nazanin_z
پنج شنبه 21 مهر 1390, 14:08 عصر
سلام
شما می تونی شماره tab page رو با کد زیر بگیری و بعد روش switch کنی.

MessageBox.Show((tabControl1.SelectedIndex+1).ToSt ring());



+1 برای چیه؟ نوشتین ایندکس انتخاب شده ی تب کنترل +1

F.zeinali
پنج شنبه 21 مهر 1390, 15:59 عصر
اینکه معلومه!!
چون شماره Tab pageها از صفر شروع میشه و ما با 1 جمع می کنیم تا از 1 شروع بشه،البته شما می تونی نذاری
بستگی به خودتون داره

amireto
پنج شنبه 21 مهر 1390, 18:36 عصر
از رويداد 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");
}
}

gwbasic
جمعه 22 مهر 1390, 00:00 صبح
برای اینکه بدونی ایندکس تب جاری کدومه می تونی از tabControl1.SelectedIndex ‌استفاده کنی ولی این راه درستی نیست چون شاید زمانی تصمیم بگیری که ترتیب تب ها رو توی تب کنترل عوض کنید اونوقت این کدهایی که نوشتی به لحاظ منطقی دچار مشکل می شن!
راه بهتر اینه که از tabControl1.SelectedTab استفاده کنی که خود کنترل تب جاری رو می ده و اینطوری با جابجایی تب مشکلی ایجاد نمی شه

راهی رو که amireto گفتن موقعی استفاده می شه که بخوایم با تغییر تب جاری کدی اجرا بشه یعنی کدی رو که توی SelectedIndexChanged‌می نویسیم با تغییر تب جاری اجرا می شه که فکر کنم احتمالا مد نظر شما نیست

mg_mahyar
جمعه 22 مهر 1390, 02:46 صبح
میتونی یک متغییر تعریف کنی و بهش عدد صفر بدی.
رویداد click هر تب رو ریز کنی و هر بار کلیک میشه روی هر تب یک عدد خاص رو توی متغییر بریزی مثلا تب دوم عدد 1 رو برای متغییر ست کنه و الی آخر.
هر وقت خواستی میتونی عدد داخل متغییر رو ببینی چنده و تبت رو متوجه بشی

nazanin_z
جمعه 22 مهر 1390, 02:59 صبح
اینجوری نوشتم جواب داد:
تو کلاس متفیر تعریف کردم
بعد گفتم اگر selectedindex تبپیج 1 بود ... تو متغیر کلاس عدد مثلا 1 بریز(عدد هر تب پیج رو با if اینجوری ریختم تو کلاس.)
بعد تو دکمه که گفتم اگر متغیر کلاسم مثلا 1 بود .... دستوراتی میخواستم تو تبپیج 1 نوشته شه رو دادم و همین طور 10 tabpage دیگه رو!!!
خلاصه جواب داد!
به نظرتون راهم خوب بوده؟؟
(میخواستم کدو بذارم اما شلوغ میشد!)

gwbasic
جمعه 22 مهر 1390, 03:24 صبح
اینجوری نوشتم جواب داد:
تو کلاس متفیر تعریف کردم
بعد گفتم اگر selectedindex تبپیج 1 بود ... تو متغیر کلاس عدد مثلا 1 بریز(عدد هر تب پیج رو با if اینجوری ریختم تو کلاس.)
بعد تو دکمه که گفتم اگر متقیر کلاسم مثلا 1 بود .... دستوراتی میخواستم تو تبپیج 1 نوشته شه رو دادم و همین تور 10 tabpage دیگه رو!!!
خلاصه جواب داد!
به نظرتون راهم خوب بوده؟؟
(میخواستم کدو بذارم اما شلوغ میشد!)

:عصبانی:وای از دست شما

wolf_majid
جمعه 22 مهر 1390, 11:09 صبح
سلام
در برنامه چندتا tabpage دارم .... با چه کدی میتونم بگم اگر تب پیج 1 فعال بود یکسری دستورات و اگر تب پیج 2 فعال بود یکسری دستورات دیگه رو اجرا کنه؟

چرا ؟ :لبخند:
خوب از رخداد کلیک هر تب پیج استفاده کنید و دستوراتتون را داخل اون بنویسید و اگر کدی هم بینشون مشترکه تابع کنید

wolf_majid
جمعه 22 مهر 1390, 11:49 صبح
هر کاری کردم با 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));
}