PDA

View Full Version : حرکت در tabpage های یک tabcontrol



debugger
دوشنبه 26 مهر 1389, 13:17 عصر
میخوام با کلید های راست و چپ جهت نمای صفحه کلید بین tabpage ها حرکت کنم

و بخاطر همین اومدم در رویداد keydown فرم اصلی کد زیر را نوشتم ولی کد زیر زمانی کار میکنه که فوکوس روی فرم اصلی باشد

من میخوام زمانی که فوکوس روی خود tabpage یا مثلا فوکوس روی textbox های درون tabpage هم بود باز هم وقتی کلید های جهت نما را زدم بین tabpage ها حرکت کند




if (e.KeyCode == Keys.Left)
{
tabControl1.SelectTab(tabControl1.SelectedIndex);
}
if (e.KeyCode == Keys.Right)
{
tabControl1.SelectTab(tabControl1.SelectedIndex);
}

Reza_Yarahmadi
دوشنبه 26 مهر 1389, 13:32 عصر
خاصيت KeyPreview براي همين منظور گذاشته شده ، كافيه اين خاصيت (براي فرم) رو true كنيد.
كدي كه گذاشتيد كار خاصي نميكنه چون در هر صورت تب حاضر انتخاب ميشه. بايد ++ يا -- اضافه كنيد.(چك كردن تعداد تب ها و منفي نشدن ايندكس فراموش نشه)

debugger
دوشنبه 26 مهر 1389, 13:43 عصر
دوست عزیز true کردم قبلا

وقتی فوکوس روی tab control هست دیگه اصلا کدی که تو رویداد keyDown فرم هست اجرا نمیشه

Reza_Yarahmadi
دوشنبه 26 مهر 1389, 14:11 عصر
وقتی فوکوس روی tab control هست دیگه اصلا کدی که تو رویداد keyDown فرم هست اجرا نمیشه
اولا وقتي فوكوس روي تب كنترل باشه ديگه نيازي به كد نويسي نداره‌، خودش با جهتها جابجا ميشه. بعدشم فقط روي بعضي از كنترل ها (مثل راديو باتن ، چك باكس و دكمه ها) است كه KeyDown فرم كار نميكنه و تب كنترل جز اين دسته به حساب نمياد.
نمونه ساده زير رو نگاه كنيد.

debugger
دوشنبه 26 مهر 1389, 14:31 عصر
ممنونم کدت خیلی به درد بخور بود

مشکل من این بود که
if (!tabControl1.Focused) چک نمی کردم

ممنونم مشکلم حل شد