PDA

View Full Version : اجازه وارد کردن عدد در TextBox



amir_3530
شنبه 19 شهریور 1384, 23:17 عصر
سلام من میخوام فقط در TextBox عدد وارد بشه
نمیخوام از Erro Proviser استفاده کنم
میخوهم حروفهای کیبورد کار نکنه فقط عددها کار کن
این کد را چجوری بنویسم و برای چه Event ای از TextBox
ممنون.

مطهر
شنبه 19 شهریور 1384, 23:58 عصر
این سوال n+1 بار پرسیده شده
لطفا جستجو کن
ولی چون نمی گردی

private void textBox3_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if(!char.IsNumber(e.KeyChar))
e.Handled=true;

}

amir_3530
یک شنبه 20 شهریور 1384, 00:56 صبح
من تا حالا داشتم می گشتم و تازه پیدا کردم
:d
توسط RezaJP
کاربر تازه وارد


تاریخ عضویت: بهمن 1381
محل سکونت: Iran

این اقا جواب داده شده بود.
باز هم ممنون

Peyman_Ranjbar
یک شنبه 20 شهریور 1384, 02:41 صبح
اگه بخواهیم کاری بکنیم که کاربر وقتی عدد 1 رو وارد کرد به جای اون 2 وارد textbox بشه باید چکار کرد؟
e.KeyChar
ReadOnly هست؟؟؟

مطهر
یک شنبه 20 شهریور 1384, 10:46 صبح
private void textBox3_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
char[] Integer={'1','2','3','4','5','6','7','8','9','0'};
if(char.IsNumber(e.KeyChar))
{
if (e.KeyChar==Integer[0])
{
e.Handled=true;
textBox3.Text+="2";
}
}
else
e.Handled=true;
}

Peyman_Ranjbar
یک شنبه 20 شهریور 1384, 23:38 عصر
private void textBox3_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
char[] Integer={'1','2','3','4','5','6','7','8','9','0'};
if(char.IsNumber(e.KeyChar))
{
if (e.KeyChar==Integer[0])
{
e.Handled=true;
textBox3.Text+="2";
}
}
else
e.Handled=true;
}
سلام
آقا این روش اصلا خوب نیست
فرض کن عدد 1 رو وسط عبارت داخل textbox وارد کنیم
اونوقت چی؟

مطهر
دوشنبه 21 شهریور 1384, 09:53 صبح
اشکال کار اینجاست

textBox3.Text+="2";
شما باید محل کرسر را بدست آورید و آن را با کاراکتر مربوطه جایگزین کنید
یه چیزی شبیه این

textBox3.Text=textBox3.Text.Insert(textBox3.Select ionStart,"2");

amir_3530
دوشنبه 21 شهریور 1384, 22:40 عصر
می خوام در TextBox نشه عدد بیشتر از 20 وارد کرد بدون استفاده از Error Provider

ممنون.

Peyman_Ranjbar
سه شنبه 22 شهریور 1384, 00:01 صبح
می خوام در TextBox نشه عدد بیشتر از 20 وارد کرد بدون استفاده از Error Provider

ممنون.
توی رویداد e.KeyDown بررسی کن که بیشتر از بیست نباشه:چشمک:
اگه بیشتر بود
e.Handled = true;

amir_3530
سه شنبه 22 شهریور 1384, 11:02 صبح
من هین جوری ن.شتم حجالا نمی دونم درست است یا نه ولیکن جواب نمیده


if(e.KeyValue < 20)
e.Handled = true;

Peyman_Ranjbar
چهارشنبه 23 شهریور 1384, 02:42 صبح
من هین جوری ن.شتم حجالا نمی دونم درست است یا نه ولیکن جواب نمیده


if(e.KeyValue < 20)
e.Handled = true;


سلام
اینجوری نه


if(Convert.ToInt32(Textbox1.Text)>20)
e.Handled = true;

amir_3530
چهارشنبه 23 شهریور 1384, 07:07 صبح
این که خطا میده آقا خودت تست کن شاید من اشتاه می کنم



private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if(Convert.ToInt32(textBox1.Text)>=20)
e.Handled = true;

}

Peyman_Ranjbar
چهارشنبه 23 شهریور 1384, 10:03 صبح
سلام
من فقط راه رو نشون دادم نه را حل
این رو ببر امتحان کن ببین به کارت می خوره؟:چشمک:

Mahdi_20
پنج شنبه 24 شهریور 1384, 05:57 صبح
تو پاسخ هفتم اینجور نوشتین.
مطهر : شما باید محل کرسر را بدست آورید و آن را با کاراکتر مربوطه جایگزین کنید.
چطوری میشه محا کرسر رو بدست آورد !!؟ من که خیلی بهش ور رفتم ولی نتونستم کاریش بکنم.

مطهر
پنج شنبه 24 شهریور 1384, 09:19 صبح
شما باید محل کرسر را بدست آورید و آن را با کاراکتر مربوطه جایگزین کنید
یه چیزی شبیه این

textBox3.Text=textBox3.Text.Insert(textBox3.Select ionStart,"2");


textBox1.SelectionStart