PDA

View Full Version : سوال: مشکل در فوکوس کردن در یک تکس باس کامپوننت



ma.rad
جمعه 27 خرداد 1390, 09:38 صبح
باسلام
من دارم یه کامپوننت مینویسم میخوام هر موقع کاربر اینتر زد بره به تکس باکس بعدی یا شی بهدی اینم نوشتم جواب نمی ده

if (e.KeyData == Keys.Enter)
{
foreach (Control C in this.Controls)
if (C is TextBox)
{
C.Focus();
}
}
}

morteza271
جمعه 27 خرداد 1390, 12:21 عصر
احتمالا اینطوری جواب بده :

if(e.KeyCode == Keys.Enter)
SelectNextControl(ActiveControl,true,true,true,tru e);

ma.rad
جمعه 27 خرداد 1390, 12:49 عصر
نشد دوست عزیز
کدو تو کدوم رویداد کامپوننت بنویسم (من تو key down نوشتم جواب نداد)
البته من از masked text box استفاده کردم

morteza271
جمعه 27 خرداد 1390, 13:17 عصر
باید درست باشه،توی همون رویداد Keydown باید نوشته بشه.
یه خورده با پارامتراش کار کنی شاید درست شه.
مثلا به جای ActiveControl بنویس ActiveControl.Parent
شاید درست بشه.:افسرده:

ma.rad
جمعه 27 خرداد 1390, 13:43 عصر
دوست عزیز درست شد
فقط اگه بخوام از کاراکتر دوم این تکس باکس شروع به نوشتن کنه چی بنویسم
یه همچین چیزی

textBox1.SelectionStart = 2;

اینم جواب نداد

morteza271
جمعه 27 خرداد 1390, 13:48 عصر
یعنی میخواین کاراکتر اول خالی باشه یا چیز دیگه ای منظورتونه؟!!!
این کدی که شما نوشتین در صورتی که تکست باکس خالی باشه خطا میده!!!
در مورد سوالتون بیشتر توضیح بدین تا بگم چیکار کنین...

morteza271
جمعه 27 خرداد 1390, 13:51 عصر
اگه درست متوجه شده باشم شاید این کد مشکلتون رو حل کنه :

textBox1.Text = " ";
textBox1.SelectionStart = 1;
textBox1.Focus();

ma.rad
جمعه 27 خرداد 1390, 14:11 عصر
نه توش تاریخه میخوام بعد 13 تایپ بشه
الان یه مشکل دیگه هم پیدا شد
من تو کامپوننت قالب تاریخ دادم 13 / / / حالا که تو برنامه ازش استفاده میکنم text هیچ مقداری بر نمی گردونه

morteza271
جمعه 27 خرداد 1390, 14:19 عصر
من قبلا یه کامپوننت برای دریافت تاریخ شمسی نوشتم ولی کامل نیست و مشکلاتی داره.
توی این تایپیک گذاشتمش میتونی ازش کمک بگیری.همه ی اینهایی که میگی رو داره.ازش استفاده کنید و اگه مشکلی هم داشتین در کدهام در خدمتتون هستم.
http://barnamenevis.org/showthread.php?291874-%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C-%D8%B3%D8%A7%D8%AE%D8%AA-%DA%A9%D9%88%D9%BE%D9%88%D9%86%D9%86%D8%AA&p=1283126&highlight=#post1283126

haghft
جمعه 27 خرداد 1390, 18:31 عصر
textBox1.Select();