PDA

View Full Version : آموزش: پرش خودکار تب بین تکست باکسها



navidiran
چهارشنبه 22 تیر 1390, 10:40 صبح
سلام. موردی توی فرمهام بنظرم جالب اومد گفتم به دوستان هم یادآور بشم. شاید بدرد کسی بخوره:





private void MaskTextBox_TextChanged ( object sender, EventArgs e ){


if ( MaskTextBox.MaskCompleted ) TextBox1.Focus( );



}


//************************************************

private void TextBox1_TextChanged ( object sender, EventArgs e )

{


if ( TextBox1.TextLength == 2 ) TextBox2.Focus( );


}





با این کار کنترل تب خودکار پس از کامل شدن مقادیر پیش فرض تکست باکس یا مسک تکست باکس به کنترل بعدی میره



موفق باشید

juza66
چهارشنبه 22 تیر 1390, 10:44 صبح
سلام دوست من

ممنون از آموزش ت، ولی اگه توی قسمت 1001 نکته فرم هم بذاری بهتره هااااا :چشمک:

navidiran
چهارشنبه 22 تیر 1390, 10:52 صبح
حتما ، بروی چشم

farsoft
چهارشنبه 22 تیر 1390, 21:00 عصر
دوست عزیز کد شما خیلی قدیمی است
پیشنهاد می کنم از این کد استفاده کنید

private void textBoxX1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Return)
{
e.Handled = true;
SendKeys.Send("{TAB}");
}
}



private void maskedTextBoxAdv1_TextChanged(object sender, EventArgs e)
{
if (maskedTextBoxAdv1.MaskCompleted)
SendKeys.Send("{TAB}");
}

mmd2009
چهارشنبه 22 تیر 1390, 22:18 عصر
با سلام

هر دو کد به جواب درستی ختم نمیشن هر دو اشکال های خودشون رو دارن

در کد اولی که اگر فرضا 20 تکست باکس داشته باشیم تو یک فرم یا فرضا حتی 10 تا فکرش رو بکنید باید چقدر کد بنویسم که به صورت خودکار وقتی طولش برابر بود با چیزی که خواستیم بره تکست باکس یا کنترل بعدی

کد بالا هم که خودکار نیست و باید اینتر زده بشه که بره کنترل بعدی تازه مهمترین ایرادش هم اینه که صدای دکمه اینتر گوش خراشه

موفق باشید....

farsoft
پنج شنبه 23 تیر 1390, 10:04 صبح
با سلام

هر دو کد به جواب درستی ختم نمیشن هر دو اشکال های خودشون رو دارن

در کد اولی که اگر فرضا 20 تکست باکس داشته باشیم تو یک فرم یا فرضا حتی 10 تا فکرش رو بکنید باید چقدر کد بنویسم که به صورت خودکار وقتی طولش برابر بود با چیزی که خواستیم بره تکست باکس یا کنترل بعدی

کد بالا هم که خودکار نیست و باید اینتر زده بشه که بره کنترل بعدی تازه مهمترین ایرادش هم اینه که صدای دکمه اینتر گوش خراشه

موفق باشید....

دوست عزیز مهمترین تفاوت کد اول و دوم در این است که شخص می تواند کد را کپی کند و لازم نیست برای حرکت بین تکست باکس ها و حتی دیگر اشیا نام آنها را بیاورد و آنها را فوکوس کند
مورد خودکار بودن معنی درستی ندارد
یعنی برنامه نمی داند که کاربر نامی که می نویسد چیست که خودش خودکار برود تکست باکس بعدی
مورد خودکار بودن مثلا برای ماسک ها و برای کامبوباکس ها امکان پذیر است ولی برای قسمتهای که کاربر باید آنها را پر کند بی معنی می باشد
راستی من در تمام پروژه هایی که تا امروز کار کردم و از این کد استفاده کردم صدای گوش خراش دکمه اینتر را نشنیده ام یا من کر هستم و یا شما اشتباه می کنید
شما لطف کنید اگر جواب ها اشتباه است جواب درست و راهکار بهتر را بفرمایید

iliaarad
جمعه 24 تیر 1390, 14:44 عصر
بالاخره نظر اساتید در کدوم کد به اجماع رسید؟

ahmad-65
جمعه 24 تیر 1390, 17:54 عصر
به نظر من ميتوني از كد زير هم استفاده كني :


private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Return)
textBox2.Focus();
}

البته بايد شماره و ترتيب تب هات رو به همين ترتيب تنظيم كني.

saman6384
جمعه 24 تیر 1390, 21:07 عصر
لازم نیست هی تابع درست کنید!!
یه تابع بنویسید به event ها اضافش کنید!
تکسباکسهارو هم آرایه کنید!!