PDA

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



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

مطهر
یک شنبه 20 شهریور 1384, 00:28 صبح
این سوال n+1 بار پرسیده شده
لطفا جستجو کن
ولی چون نمی گردی

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

}

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

مطهر
یک شنبه 20 شهریور 1384, 11:16 صبح
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
دوشنبه 21 شهریور 1384, 00:08 صبح
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, 10:23 صبح
اشکال کار اینجاست

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

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

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

ممنون.

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

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

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


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

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


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


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


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

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



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:33 صبح
سلام
من فقط راه رو نشون دادم نه را حل
این رو ببر امتحان کن ببین به کارت می خوره؟:چشمک:

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

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

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


textBox1.SelectionStart

parseh21
جمعه 29 فروردین 1393, 15:17 عصر
اگر بخواهیم در یک textbox کاربر فقط بتواند مثلا 5 شماره موبایل را وارد کند باید چه کار کنیم؟
شماره ها با 09 شروع می شوند و 11 رقمی هستند و با اینتر از هم جدا می شوند.
سپاسگذارم.

parseh21
سه شنبه 02 اردیبهشت 1393, 22:16 عصر
ببخشید دوستان, من هنوز جوابم را نیافتم ... چطور کاربر بتواند در یک textbox فقط شماره موبایلشو وارد کنه و نکته مهم اینه که بتونه در صورت اشتباه, اون رو ویرایش کنه.
سپاسگذارم.

Apache66
چهارشنبه 03 اردیبهشت 1393, 19:28 عصر
ببخشید دوستان, من هنوز جوابم را نیافتم ... چطور کاربر بتواند در یک textbox فقط شماره موبایلشو وارد کنه و نکته مهم اینه که بتونه در صورت اشتباه, اون رو ویرایش کنه.
سپاسگذارم.

فکر کنم اون چیزی که لازم داری همین باشه


if (e.KeyChar == '\b')
{
e.Handled = false;
return;
}


if (e.KeyChar < '0' || e.KeyChar > '9')

e.Handled = true;


if (e.KeyChar == '0' || e.KeyChar == '1' || e.KeyChar == '2' || e.KeyChar == '3' || e.KeyChar == '4' || e.KeyChar == '5' || e.KeyChar == '6' || e.KeyChar == '7' || e.KeyChar == '8' || e.KeyChar == '9' || e.KeyChar == '\b')
{
}
else{
MessageBox.Show("لطفا فقط عدد وارد کنید", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

parseh21
جمعه 17 مرداد 1393, 11:17 صبح
فکر کنم اون چیزی که لازم داری همین باشه


با سپاس از شما دوست گرامی

من می خواهم به طور مثال تعداد 10 شماره موبایل در textbox وارد شود, شماره ها هم با اینتر از هم جدا شوند اما این کد فقط اجازه وارد کردن عدد را می دهد ولی نمی توانیم آنها را از هم جدا کنیم. اگر به صورتی بتوان نوشت که تعداد 11 رقم را بنویسیم و با اینتر عددها را جدا کنیم بسیار خوب می شد.
در این مورد می توانید راهنمایی بفرمایید.

با سپاس

mrprestige
جمعه 17 مرداد 1393, 11:58 صبح
ببخشید دوستان, من هنوز جوابم را نیافتم ... چطور کاربر بتواند در یک textbox فقط شماره موبایلشو وارد کنه و نکته مهم اینه که بتونه در صورت اشتباه, اون رو ویرایش کنه.
سپاسگذارم.

تو رویداد keypress مربوط به تکس باکست اینو بنویس .



if(!char.isdigit(e.keychar)&&(!char.iscontrol(e.keychar)))
e.handle=true;

parseh21
جمعه 17 مرداد 1393, 19:35 عصر
تو رویداد keypress مربوط به تکس باکست اینو بنویس .

ممنون از وقتی که گذاشتید.

اما هنوز همان مورد پابرجاست. یعنی اعداد را با اینتر از هم نمی توانیم جدا کنیم. اگر به صورتی می شد که فقط اعدادی را قبول می کرد که با 09 شروع شوند خوب می شد.

parseh21
سه شنبه 28 مرداد 1393, 22:39 عصر
من می خواهم به طور مثال تعداد 10 شماره موبایل در textbox وارد شود, شماره ها هم با اینتر از هم جدا شوند.

برای انجام پروژه ام به این مواردی که اشاره کردم احتیاج دارم. اگر کسی از دوستان میتونه در این مورد منو راهنمایی کنه ممنون می شم.
حتی میتونم در صورت انجام این مورد مبلغی رو تقدیم کنم.
سپاس از شما