PDA

View Full Version : text box ای که فقط عدد بگیره یا حروف



RIG000
چهارشنبه 29 اردیبهشت 1389, 12:42 عصر
راستش سرچ کردم نبود نتونستم پیدا کنم از عنوان مشخصه کسی میتونه کمک کنه؟

ASKaffash
چهارشنبه 29 اردیبهشت 1389, 13:28 عصر
سلام
از MaskedTextBox استفاده کنید و خاصیت Mask را متناسب تنظیم کنید

RIG000
چهارشنبه 29 اردیبهشت 1389, 14:18 عصر
چه جوری یعنی؟

ua741_1
چهارشنبه 29 اردیبهشت 1389, 14:27 عصر
راستش سرچ کردم نبود نتونستم پیدا کنم از عنوان مشخصه کسی میتونه کمک کنه؟

سلام برای عدد این طوری هست و برای حرف هم باید کد رو تغییر بدی



private void txtanfee_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\b')
{
e.Handled = false;
return;
}

if (e.KeyChar < '0' || e.KeyChar > '9')
e.Handled = true;


}

ASKaffash
چهارشنبه 29 اردیبهشت 1389, 14:48 عصر
سلام
مثلا Mask="9999" , ...


Masking element
Description
0
Digit, required. This element will accept any single digit between 0 and 9.
9
Digit or space, optional.
#
Digit or space, optional. If this position is blank in the mask, it will be rendered as a space in the Text (http://barnamenevis.org/forum/ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/fxref_system.windows.forms/html/fb75b6d2-7bd7-be70-ed28-e8df0a163eea.htm) property. Plus (+) and minus (-) signs are allowed.
L
Letter, required. Restricts input to the ASCII letters a-z and A-Z. This mask element is equivalent to [a-zA-Z] in regular expressions.
?
Letter, optional. Restricts input to the ASCII letters a-z and A-Z. This mask element is equivalent to [a-zA-Z]? in regular expressions.
&
Character, required. If the AsciiOnly (http://barnamenevis.org/forum/ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/fxref_system.windows.forms/html/519055ea-3da0-4aa4-1ff2-a28a9a8f7bf6.htm) property is set to true, this element behaves like the "L" element.
C
Character, optional. Any non-control character. If the AsciiOnly (http://barnamenevis.org/forum/ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/fxref_system.windows.forms/html/519055ea-3da0-4aa4-1ff2-a28a9a8f7bf6.htm) property is set to true, this element behaves like the "?" element.
A
Alphanumeric, optional. If the AsciiOnly (http://barnamenevis.org/forum/ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/fxref_system.windows.forms/html/519055ea-3da0-4aa4-1ff2-a28a9a8f7bf6.htm) property is set to true, the only characters it will accept are the ASCII letters a-z and A-Z.
a
Alphanumeric, optional. If the AsciiOnly (http://barnamenevis.org/forum/ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/fxref_system.windows.forms/html/519055ea-3da0-4aa4-1ff2-a28a9a8f7bf6.htm) property is set to true, the only characters it will accept are the ASCII letters a-z and A-Z.
.
Decimal placeholder. The actual display character used will be the decimal symbol appropriate to the format provider, as determined by the control's FormatProvider (http://barnamenevis.org/forum/ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/fxref_system.windows.forms/html/4cefd96b-69e8-a424-aef4-53e4d144acd3.htm) property.
,
Thousands placeholder. The actual display character used will be the thousands placeholder appropriate to the format provider, as determined by the control's FormatProvider (http://barnamenevis.org/forum/ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/fxref_system.windows.forms/html/4cefd96b-69e8-a424-aef4-53e4d144acd3.htm) property.
:
Time separator. The actual display character used will be the time symbol appropriate to the format provider, as determined by the control's FormatProvider (http://barnamenevis.org/forum/ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/fxref_system.windows.forms/html/4cefd96b-69e8-a424-aef4-53e4d144acd3.htm) property.
/
Date separator. The actual display character used will be the date symbol appropriate to the format provider, as determined by the control's FormatProvider (http://barnamenevis.org/forum/ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/fxref_system.windows.forms/html/4cefd96b-69e8-a424-aef4-53e4d144acd3.htm) property.
$
Currency symbol. The actual character displayed will be the currency symbol appropriate to the format provider, as determined by the control's FormatProvider (http://barnamenevis.org/forum/ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/fxref_system.windows.forms/html/4cefd96b-69e8-a424-aef4-53e4d144acd3.htm) property.
<
Shift down. Converts all characters that follow to lowercase.
>
Shift up. Converts all characters that follow to uppercase.
|
Disable a previous shift up or shift down.
\
Escape. Escapes a mask character, turning it into a literal. "\\" is the escape sequence for a backslash.

mohitlog
چهارشنبه 29 اردیبهشت 1389, 15:34 عصر
در keypress میتونی کد زیر را بنویسی

برای وارد کردن عدد

e.Handled = !char.IsDigit(e.KeyChar)



فک کنم برای تایپ حروف هم اگر به چای IsDigit از IsLetter استفاده کنی جواب بگیری


e.Handled = !char.IsLetter(e.KeyChar)

bpzone
چهارشنبه 29 اردیبهشت 1389, 16:51 عصر
فقط عدد



private void txt_ID_KeyPress(object sender, KeyPressEventArgs e)
{
if (!(char.IsDigit(e.KeyChar) || char.IsControl(e.KeyChar)))
{
e.Handled = true;
}
}

khorshidico
یک شنبه 09 خرداد 1389, 09:23 صبح
با سلام
من یک mask text box درست کردم که فقط عدد میگیره.
اما چون تاریخ هست میخوام اگر عددی بیشتر از مثلا 12 برای ماه گرفت پیغام خطای فارسی بده
من یک کد نوشتم اما هنگام اجرای برنامه وقتی با تب کیبورد روی اون تکست باکس میرم پیغام خطا میده.
میتونین بهم کمک کنید ؟
خیلی لازم دارم بهش...
ممنون



private void txtYS_KeyUp(object sender, KeyEventArgs e)
{
if (int.Parse(txtYS.Text) > 89)
MessageBox.Show("م§§ «ںé ­¥ی¥ ëêی ں¬§");


من از این کد استفاده کردم که خطا میگیره

khorshidico
یک شنبه 09 خرداد 1389, 09:24 صبح
با سلام
من یک mask text box درست کردم که فقط عدد میگیره.
اما چون تاریخ هست میخوام اگر عددی بیشتر از مثلا 12 برای ماه گرفت پیغام خطای فارسی بده
من یک کد نوشتم اما هنگام اجرای برنامه وقتی با تب کیبورد روی اون تکست باکس میرم پیغام خطا میده.
میتونین بهم کمک کنید ؟
خیلی لازم دارم بهش...
ممنون



private void txtYS_KeyUp(object sender, KeyEventArgs e)
{
if (int.Parse(txtYS.Text) > 89)
MessageBox.Show("م§§ «ںé ­¥ی¥ ëêی ں¬§");


من از این کد استفاده کردم که خطا میگیره

mmd2009
یک شنبه 09 خرداد 1389, 09:31 صبح
دوست عزیز این کد رو بذار تو رویداد KeyPress جعبه متن هایی که دوست داری فقط عدد داخلشون وارد بشه که هم باعث میشه جز عدد چیزی وارد نکنی و هم دکمه Back رو فعال میکنه :



if (!(char.IsDigit(e.KeyChar) || e.KeyChar == (char) Keys.Back ))
e.Handled = true;




و کد زیر رو هم بذار تو جعبه متن هایی که می خوای فقط حرف داخلشون وارد بشه به طوری که دکمه back هم فعال باشه





if (!(char.IsLetter(e.KeyChar) || e.KeyChar == (char)Keys.Back))
e.Handled = true;

mmd2009
یک شنبه 09 خرداد 1389, 10:01 صبح
با سلام
من یک mask text box درست کردم که فقط عدد میگیره.
اما چون تاریخ هست میخوام اگر عددی بیشتر از مثلا 12 برای ماه گرفت پیغام خطای فارسی بده
من یک کد نوشتم اما هنگام اجرای برنامه وقتی با تب کیبورد روی اون تکست باکس میرم پیغام خطا میده.
میتونین بهم کمک کنید ؟
خیلی لازم دارم بهش...
ممنون



privatevoid txtYS_KeyUp(object sender, KeyEventArgs e)
{
if (int.Parse(txtYS.Text) > 89)
MessageBox.Show("م§§ «ںé ­¥ی¥ ëêی ں¬§");

من از این کد استفاده کردم که خطا میگیره


سلام دوست عزیز

تو رویداد keypress این کد رو بذار



i++;
if (i == 5)
if (e.KeyChar != (char)Keys.NumPad1)
{
MessageBox.Show("error");
}


و در قسمت بالای public form هم این کد رو بذار




int i =0;



امیدوارم به دردت بخوره

mmd2009
یک شنبه 09 خرداد 1389, 10:02 صبح
البته اینم بگم این کد رو امتحان نکردم شاید کار کنه شاید هم نکنه

khorshidico
دوشنبه 10 خرداد 1389, 07:46 صبح
از لطف دوستان بسیار متشکر هستم
اول اینکه این کدی که نوشتین مربوط به php هست ولی من سی شارپ میخواستم
بعدهم با محدود کردن تکست باکس یا ماسک به عدد یا حروف مشکل ندارم اما میخوام از یک محدوده عددی فقط استفاده شود.
یعنی اگر عدد من بین 0 تا 12 نبود پیغام خطا بده و اونو قبول نکنه
راهکار این موضوع چیه/؟

با تشکر فراوان ...

mehdi592
دوشنبه 10 خرداد 1389, 10:32 صبح
دوستان عزیز میشه بفرمائید

if (e.KeyChar == '\b')
{
e.Handled = false;
چیه؟
\b
و
این
handel
چیکار میکنه وقتی false و true میشه؟

mmd2009
دوشنبه 10 خرداد 1389, 12:48 عصر
از لطف دوستان بسیار متشکر هستم
اول اینکه این کدی که نوشتین مربوط به php هست ولی من سی شارپ میخواستم
بعدهم با محدود کردن تکست باکس یا ماسک به عدد یا حروف مشکل ندارم اما میخوام از یک محدوده عددی فقط استفاده شود.
یعنی اگر عدد من بین 0 تا 12 نبود پیغام خطا بده و اونو قبول نکنه
راهکار این موضوع چیه/؟

با تشکر فراوان ...

دوست عزیز من اونو که گذاشتم تو قالب PHP نه اینکه کدها از نوع PHP هستند.

mmd2009
دوشنبه 10 خرداد 1389, 12:50 عصر
دوستان عزیز میشه بفرمائید

if (e.KeyChar == '\b')
{
e.Handled = false;
چیه؟
\b
و
این
handel
چیکار میکنه وقتی false و true میشه؟

دوست عزیز این Handled موقعی که True باشه کیبورد عملکردش انجام میشه مثلا لگر یک دکمه زده باشه که مقدار 1 رو وارد کنی تو یک جعبه متن میاد اونو وارد میکنه ولی اگر مقدارش False باشه اون یک رو دیگه نمیتونی بذاری تو اون جعبه متن

امیدوارم منظورمو رسونده باشم

khorshidico
دوشنبه 10 خرداد 1389, 12:54 عصر
سلام دوست عزیز

تو رویداد keypress این کد رو بذار



i++;
if (i == 5)
if (e.KeyChar != (char)Keys.NumPad1)
{
MessageBox.Show("error");
}


و در قسمت بالای public form هم این کد رو بذار




int i =0;



امیدوارم به دردت بخوره



درست...
من میخوام فقط عدد بین 0 تا 12 رو بگیره و اگر بزرگتر تایپ شد یا قبول نکنه یا پیغام بده
اونو چیکارش کنم؟

این جواب شما کد نویسیتون دقیقا چیکار میکنه؟

mmd2009
دوشنبه 10 خرداد 1389, 13:01 عصر
حالا من اینو رو هوا نوشتم

من بهش گفتم کلمه 5 ام اگر مخالف 1 باشه پیغام خطا بده

تو باید بهش بگی که اگر کلمه 5 مخالف 1 باشه یا کلمه 6 از 2 بزرگتر باشه خطا بده و یکی برگرده به عقب

mmd2009
دوشنبه 10 خرداد 1389, 13:04 عصر
راستی یه چیزی شما چرا از DLL های اماده استفاده نمی کنید برای این کار حتی واسه زیبایی برنامه هم خوبه

OHidden
سه شنبه 11 خرداد 1389, 15:03 عصر
راحت ترین و بهترین راه همینه

برای دریافت فقط اعداد




public static void IntText(KeyPressEventArgs R)
{
if (R.KeyChar > 46)
if (char.IsDigit(R.KeyChar) == false)
{
R.KeyChar = Convert.ToChar(0);
}
}


و برای دریافت فقط متن


public static void StrText(KeyPressEventArgs R)
{
if (R.KeyChar > 32)
if (char.IsLetter(R.KeyChar) == false)
{
R.KeyChar = Convert.ToChar(0);
}
}

در رویداد keypress کداتو بزار

khorshidico
چهارشنبه 12 خرداد 1389, 13:39 عصر
راستی یه چیزی شما چرا از DLL های اماده استفاده نمی کنید برای این کار حتی واسه زیبایی برنامه هم خوبه



خوب دوست عزیز
شما dll ای برای این کار سراغ دارین ؟
ممنون میشم معرفی کنین

میخوام فقط عدد بگیره اونم تو یه بازه یا محدوده عددی

mmd2009
چهارشنبه 12 خرداد 1389, 14:32 عصر
بفرما دوست عزیز

اینم dll هایی که گفتم که فق تاریخ میگیره البته باید بذاریشون تو حالت short

elyas_delshadnbe
یک شنبه 08 تیر 1393, 12:12 عصر
راحت ترین و بهترین راه همینه

برای دریافت فقط اعداد




public static void IntText(KeyPressEventArgs R)
{
if (R.KeyChar > 46)
if (char.IsDigit(R.KeyChar) == false)
{
R.KeyChar = Convert.ToChar(0);
}
}


و برای دریافت فقط متن


public static void StrText(KeyPressEventArgs R)
{
if (R.KeyChar > 32)
if (char.IsLetter(R.KeyChar) == false)
{
R.KeyChar = Convert.ToChar(0);
}
}

در رویداد keypress کداتو بزار







چجوری باید توی رویداد keypress قرار بدمش؟

ghasem110deh
یک شنبه 24 اسفند 1393, 10:54 صبح
دوست عزیز این کد رو بذار تو رویداد KeyPress جعبه متن هایی که دوست داری فقط عدد داخلشون وارد بشه که هم باعث میشه جز عدد چیزی وارد نکنی و هم دکمه Back رو فعال میکنه :



if (!(char.IsDigit(e.KeyChar) || e.KeyChar == (char) Keys.Back ))
e.Handled = true;




و کد زیر رو هم بذار تو جعبه متن هایی که می خوای فقط حرف داخلشون وارد بشه به طوری که دکمه back هم فعال باشه





if (!(char.IsLetter(e.KeyChar) || e.KeyChar == (char)Keys.Back))
e.Handled = true;



سلام
البته می دونم تاپیک قدیمیه !
ولی راهی هست که نخواید تک تک تکست باکس هارو (رویداد کی پرس) رو بزنیم ؟
.
.
.
که اسم چند تا تکست باکس رو بگیره
یه کد گروهی مثل واسه پاک کردن تکست باکس ها