وارد کردن فقط عدد در Textbox
دوستان واسه وارد کردن فقط عدد در Textbox از این کدهای استفاده کردم توی رویداد keypress تکس باکس
if (!char.IsControl(e.KeyChar)&& !char.IsDigit(e.KeyChar) && e.KeyChar != '.')
{
e.Handled = true;
}
یکی توضیح میده اینا چی کار میکنن؟ آخه از یه سایت خارجی گرفتم اینو نمیدونم چی به چیه
نقل قول: وارد کردن فقط عدد در Textbox
از این استفاده کن (تو KeyPress تکست باکست) بهتره :
if (!(e.KeyChar >= '0' && e.KeyChar <= '9'))//a
e.Handled = true;//b
جزئیاتشم که مشخصه متوجه میشی !؟
KeyChar که یعنی هر کاراکتری که کاربر بواسطه کیبورد درون تکست باکس وارد میکند.
گفتم که اگه کاراکترها بین اعداد صفر تا 9 نبودند اجازه وارد کردن رو ندهد .
نقل قول: وارد کردن فقط عدد در Textbox
سلام دوست عزیز:
من برای این کار که تکستباکس فقط عدد را قبول کند از این کد استفاده می کنم که خوب جواب میده.
if (char.IsLetter(e.KeyChar)==true)
{
e.Handled = true;
}
موفق باشی
Voice of Silence
نقل قول: وارد کردن فقط عدد در Textbox
نقل قول:
نوشته شده توسط
harani
از این استفاده کن (تو KeyPress تکست باکست) بهتره :
if (!(e.KeyChar >= '0' && e.KeyChar <= '9'))//a
e.Handled = true;//b
جزئیاتشم که مشخصه متوجه میشی !؟
KeyChar که یعنی هر کاراکتری که کاربر بواسطه کیبورد درون تکست باکس وارد میکند.
گفتم که اگه کاراکترها بین اعداد صفر تا 9 نبودند اجازه وارد کردن رو ندهد .
مرسی..فقط یه سوال..
e.Handled=True یعنی چی؟
نقل قول: وارد کردن فقط عدد در Textbox
نقل قول:
نوشته شده توسط
voice.of.silence
سلام دوست عزیز:
من برای این کار که تکستباکس فقط عدد را قبول کند از این کد استفاده می کنم که خوب جواب میده.
if (char.IsLetter(e.KeyChar)==true)
{
e.Handled = true;
}
موفق باشی
Voice of Silence
مرسی دوست عزیز..اگه اون خط شرط رو توضیح بدی ممنون میشم
نقل قول: وارد کردن فقط عدد در Textbox
نقل قول:
نوشته شده توسط
pro_man
مرسی..فقط یه سوال..
e.Handled=True یعنی چی؟
گفتم که e.handle اگه true باشه .یعنی که کاربر حق وارد کردن هیچ کاراکتر به جز کاراکترهای شرط if را نداره .
نقل قول: وارد کردن فقط عدد در Textbox
سلام
دوستان تمامی این روش ها مشکل داره، خواهشا این شیوه های غلط رو ترویج ندید!
اگه یک رشته ی شامل حروف هم درون اون تکس باکس Copy و بعد Paste کنید می بینید حروف رو هم میگیره پس خود این یه باگه !
آخه MaskedTextBox هست اونوقت بریم کد نویسی!
کافیه یک maskedTextBox بزاری و Mask اون رو روی Numeric بزاری و تعداد اعدادت هم تنظیم کنی همین !
موفق باشید
نقل قول: وارد کردن فقط عدد در Textbox
نقل قول:
نوشته شده توسط
danialafshari
سلام
دوستان تمامی این روش ها مشکل داره، خواهشا این شیوه های غلط رو ترویج ندید!
اگه یک رشته ی شامل حروف هم درون اون تکس باکس Copy و بعد Paste کنید می بینید حروف رو هم میگیره پس خود این یه باگه !
آخه MaskedTextBox هست اونوقت بریم کد نویسی!
کافیه یک maskedTextBox بزاری و Mask اون رو روی Numeric بزاری و تعداد اعدادت هم تنظیم کنی همین !
موفق باشید
بله حرف شما کاملاً درسته ولی اولاً شاید دوستمان بخواهد یک عددی درج کند که طول آن متغیر باشد .ماسک textBox برای زمانی است که کاربر میخواهد یک چیز مشخصی مانند شماره شناسنامه ,معدل , تاریخ و ... را وارد کند . البته درست میگید که اگه کاربر بخواهد از جایی کپی پیست کند حروف هم شامل میشه . خب میتونه تو رویداد KeyDown بنویسه :
private void textBox1_KeyDown(object sender, KeyEventArgs e) {//c
if (e.Control == true)//j
{
MessageBox.Show("Cut/Copy and Paste Options are disabled");//k
textBox1.Focus();//f
}
}
تو mouse Down هم بنویسه
private void textBox1_MouseDown(object sender, KeyEventArgs e) {//c
ContextMenu cm = new ContextMenu();//j
textBox1.ContextMenu = cm;//h
textBox1.Focus();//f
}
البته راه های آسونتر هم هست ولی فکر کنم برای دوستمون سخت باشه .
نقل قول: وارد کردن فقط عدد در Textbox
سلام دوست عزیز
اگه میخوای فقط عدد وارد کنی یکی از دوستان یه ابزار به نام txtpronet نوشته که تو همین سایته اگه یه جستجوی کوتاه بکنی حتما پیداش می کنی چندتا از خاصیت هاشو میگم ، خیلی کارو راحت می کنه
تایپ فقط فارسی در تکس باکس
تایپ فقط انگلیسی در تکس باکس
تایپ فقط عدد در تکس باکس
گذاشتن ویلگول بین اعداد مثل 120,000
....امیدوارم مفید باشه
نقل قول: وارد کردن فقط عدد در Textbox
با این کد مشکل کپی پست هم حل می شود!
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If Not Char.IsNumber(e.KeyChar) AndAlso Not Char.IsControl(e.KeyChar) Then
e.Handled = True
End If
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
Dim digitsOnly As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex("[^\d]")
TextBox1.Text = digitsOnly.Replace(TextBox1.Text, "")
End Sub
f you want to allow decimals, add
AndAlsoNot e.KeyChar ="."to the if statement in the KeyPress section.
اگر متن کپی شده در حافظه دارای اعداد باشد فقط اعداد جایگذاری می شوند و حروف زائد حذف می شوند.
1 ضمیمه
نقل قول: وارد کردن فقط عدد در Textbox
ضمیمه 150695نمونه پروژه کدهای تست شده:
نقل قول: وارد کردن فقط عدد در Textbox
شما این کد را توی روی داد Keypress باری TextBox کپی کن ، امکان وارد کردن فقط عدد ممکن میشه و کپی پیست هم کار نمیکنه
if (!char.IsDigit(e.KeyChar))
{
if (e.KeyChar != '\b')
e.Handled = true;
}
نقل قول: وارد کردن فقط عدد در Textbox
اینم یه روش کلی که کاربر رو وادار می کنه فقط عدد تایپ کنه و Ctrl + v , راست کلیک رو غیر فعال می کنه :لبخند:
///ورودی فقط عدد
private void textbox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = (!char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar));
}
///غیر فعال کردن Ctrl+V
private void textbox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyValue == 86)
{
e.Handled = true;
e.SuppressKeyPress = true;
}
}
///غیر فعال کردن راست کلیک
private void textbox1_MouseDown(object sender, MouseEventArgs e)
{
textbox1.ContextMenu = new ContextMenu();
}
نقل قول: وارد کردن فقط عدد در Textbox
نقل قول:
نوشته شده توسط
alex037
شما این کد را توی روی داد Keypress باری TextBox کپی کن ، امکان وارد کردن فقط عدد ممکن میشه و کپی پیست هم کار نمیکنه
if (!char.IsDigit(e.KeyChar))
{
if (e.KeyChar != '\b')
e.Handled = true;
}
سلام
من این کد را امتحان کردم؛ درست نیست و کپی، پیست هم کار می کند و رشته و حروف وارد تکست باکس می شود؟؟
نقل قول: وارد کردن فقط عدد در Textbox
تمامی این روش ها اشکالاتی دارن بعدا یک نمونه کد مینویسم که این مشکلات رو نداشته باشه...
نقل قول: وارد کردن فقط عدد در Textbox
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if(!(e.KeyCode>= Keys.NumPad0 && e.KeyCode <=Keys.NumPad9 || e.KeyCode>= Keys.D0 && e.KeyCode<= Keys.D9 && ! e.Shift || e.KeyCode == Keys.Back))
{
e.SuppressKeyPress = true;
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
for(int i =0; i<textBox1.Text.Length; i++)
{
if (textBox1.Text[i] == '0' || textBox1.Text[i]== '1' || textBox1.Text[i] == '2' || textBox1.Text[i] == '3'|| textBox1.Text[i] == '4' || textBox1.Text[i]== '5'|| textBox1.Text[i] == '6' || textBox1.Text[i] == '7'|| textBox1.Text[i] == '8' || textBox1.Text[i] == '9')
{
//هیچ کاری نکن
}
else
{
textBox1.Text = "";
}
}
}