ورود

View Full Version : سوال: چند تا مشکل با TextBox ها



water_lily_2012
پنج شنبه 24 آذر 1390, 16:21 عصر
سلام

چند تا مشکل با TextBox ها دارم.

1- چگونه می شود با زدن Enter بین تکس باکس ها حرکت کرد. البته نمی خواهم برای هر تکس باکس کد بنویسم. (یک تابع برای تمام تکس باکس ها)

2- چه کار کنم که کاربر نتواند فاصله (Space) وارد کند.

مهدی فرزاد
پنج شنبه 24 آذر 1390, 21:26 عصر
سلام
هر چند این سئوال تکراری بود اما چون خیلی قدیمی بود و الان کاربران جدید به تالار اضافه شده بازم تکرار میکنم

برای اینکه بخوای با زدنه دکمه اینتر بین تکس باکس ها حرکت کنی و نیاز هم نباشه برای همه اونها کد بنویسی در اونت KeyDown مربوط به Panel که تکس باکس ها در اون هستن کد زیر رو بنویس

private void Panel_KeyDown(object sender, KeyEventArgs e)
{
var uie = e.OriginalSource as UIElement;
switch (e.Key)
{

case Key.Enter:
e.Handled = true;
uie.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
break;
case Key.Escape:
e.Handled = true;
uie.MoveFocus(new TraversalRequest(FocusNavigationDirection.Previous ));
break;
}
}


البته کد بالا با زدن دکمه Escape به عقب هم بر میگرده

برای اینکه Space رو قبول نکنه در اونت PreviewKeyDown تکس باکست بنویس

private void TextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
switch (e.Key)
{
case Key.Space:
e.Handled = true;
break;
}
}


و اگر میخوای چند تکس باکس با هم این کار رو انجام بدن میتونی این کار رو برای اونت PreviewKeyDown مربوط به panel که اونها رو در برگرفته انجام بدی