PDA

View Full Version : سوال: ایجاد فوکوس در ابزار tabControl



pedramfj
پنج شنبه 04 آذر 1389, 16:11 عصر
سلام
من روی فرم از ابزار tabControl استاده کردم و 2 تا سربرگ هم داره .
حالا می خواهم با عوض شدن سربرگ ها فوکوس بر روی کنترل دلخواه قرار بگیره(در هر سربرگ).
تشکر...

alishokr
پنج شنبه 04 آذر 1389, 16:38 عصر
سلام .
منظورتون این هست که ، در داخل هر تب کنترلی هست که میخواید اون کنترل فوکوس رو بگیره ؟

اگه این طور هست ، در داخل ایونت Selected ، تب کنترل ... به صورت زیر عمل کنید :


private void tabControl1_Selected(object sender, TabControlEventArgs e)
{
e.TabPage.Controls.Cast<Control>().First(x => (string) x.Tag == "Default").Select();
}


برای اینکه این روش جواب بده ، شما در داخل هر تب ، به پراپرتی Tag کنترلی که میخواید به عنوان پیش فرض فوکوس رو بگیره مقدار Default(یا هر مقدار دیگه ای که مدنظرتون هست) بدید و با کد بالا اون کنترل رو انتخاب کنید .
مسلما این تنها روش نیست و بهترین روش هم نیست .

با آرزوی موفقیت .

pedramfj
پنج شنبه 04 آذر 1389, 17:18 عصر
e.TabPage.Controls.Cast<Control>().First(x => (string) x.Tag == "Default").Select();

[/code]
ممنون دوست عزیز.
از کد خطا میگیره.
من خودم نتوانستم کد را در داخل ایونت Selected بنویسم.

alishokr
پنج شنبه 04 آذر 1389, 18:25 عصر
ممنون دوست عزیز.
از کد خطا میگیره.
من خودم نتوانستم کد را در داخل ایونت Selected بنویسم.

چه خطایی میده ؟

pedramfj
پنج شنبه 04 آذر 1389, 18:30 عصر
ممنون.
در جاهایی که با رنگ قرمز مشخص کردم .

(x => (string) x.Tag == "Default")


همانطور که شما گفتید در ایونت Selected نوشتم.
ولی انگار که در یک ایونت دیگر نوشته شده؟؟؟

alishokr
پنج شنبه 04 آذر 1389, 19:27 عصر
آیا using System.Linq رو در ابتدای صفحه اضافه کردید ؟

pedramfj
جمعه 05 آذر 1389, 13:31 عصر
من از vs2005 استفاده می کنم.
:متفکر:
ممنون.

alishokr
جمعه 05 آذر 1389, 17:08 عصر
سلام.
کد رو با یه Foreach مینویسیم:


foreach (Control c in e.TabPage.Controls)
{
if (c.Tag != null && c.Tag.ToString() == "Default")
{
c.Select();
break;
}
}



با آرزوی موفقیت ...