PDA

View Full Version : محدود کردن text box



Hlpof313
سه شنبه 02 تیر 1394, 10:59 صبح
سلام
می خوام یه تکست باکس که فقط 10رقم دریافت کنه .تو تاپیک های دیگه یه سری دوستان گفته بودن خصوصیت max lentgh دقیقا کجاست؟

محمد رضا فاتحی
سه شنبه 02 تیر 1394, 11:11 صبح
132528وقتی روی تکستباکس کلیک می کنید ، تو منوی Properties گزینه MaxLength رو میتونی پیدا کنی

mehrdad1991h
سه شنبه 02 تیر 1394, 14:30 عصر
البته به نظر من بهتره از maskedtextbox استفاده کنی
و توی پروپرتیز ها
mask را روی numeric بگذارید و هر تعداد رقمی میخوای براش مشخص کن
و promptChar را هم از - به اسپیس تغییر بده که مشخص هم نباشه

اینجوری فقط عدد هم میتونه وارد کنه و بهترین روش هست

Hlpof313
سه شنبه 02 تیر 1394, 16:44 عصر
132528وقتی روی تکستباکس کلیک می کنید ، تو منوی Properties گزینه MaxLength رو میتونی پیدا کنی
دوست عزیز ممنون این مشکل برطرف شد 10تا کاراکتر بیشتر نمیگیره چطور مجبور به گرفتن 10تا کمتر نشه مثل کد ملی

محمد رضا فاتحی
سه شنبه 02 تیر 1394, 17:13 عصر
میزان حداقل نداره...باید با کدنویسی و خطا بهش اخطار بدی...
مثلا
if (textBox1.TextLength < 10) {
MessageBox.Show("تعداد ارقام کد ملی را صحیح وارد نمایید");
}

یا اگه می خوای از MaskTextBoxاستفاده کنی

if (!maskedTextBox1.MaskCompleted) {
MessageBox.Show("تعداد ارقام کد ملی را صحیح وارد نمایید");
}

Hlpof313
سه شنبه 02 تیر 1394, 17:18 عصر
مرسی
با دستور اول با دریافت هر کاراکتر متن erorرو نشون میده

محمد رضا فاتحی
سه شنبه 02 تیر 1394, 17:19 عصر
کجا نوشتید؟؟انشا الله که تو رویداد TextChange نیست؟

Hlpof313
سه شنبه 02 تیر 1394, 17:23 عصر
داخل key pressنوشتم

محمد رضا فاتحی
سه شنبه 02 تیر 1394, 17:26 عصر
نه دوست گرامی مشکل همینجاس...
شما دوحالت داری
1-هنگام ثبت اطلاعات که مطمئنا یه دکمه داری برای ثبت اطلاعات... که این کدی که نوشتم رو باید تو رویداد کلیک دکمه استفاده کنی
2- واکشی اطلاعات به اینصورت که وقتی مثلا کد ملی رو وارد کرد(چون تعداد رقمش ثابته) بدون اینتر یا فشردن دکمه...واکشی اطلاعات اتفاق بیوفته که در این صورت میای تو رویداد textchange و keypress می نویسی که textchange ارجحیت داره
تازه با این کد کارت نمی شه این موقع باید اینجوری بنویسی


if (textBox1.TextLength == 10) {
//YourAction();
}

Hlpof313
سه شنبه 02 تیر 1394, 17:35 عصر
نه دوست گرامی مشکل همینجاس...
شما دوحالت داری
1-هنگام ثبت اطلاعات که مطمئنا یه دکمه داری برای ثبت اطلاعات... که این کدی که نوشتم رو باید تو رویداد کلیک دکمه استفاده کنی
2- واکشی اطلاعات به اینصورت که وقتی مثلا کد ملی رو وارد کرد(چون تعداد رقمش ثابته) بدون اینتر یا فشردن دکمه...واکشی اطلاعات اتفاق بیوفته که در این صورت میای تو رویداد textchange و keypress می نویسی که textchange ارجحیت داره
تازه با این کد کارت نمی شه این موقع باید اینجوری بنویسی


if (textBox1.TextLength == 10) {
//YourAction();
}
ممنون
بعد از اینکه erorمیده بازم اطلاعات و ثبت می کنه

محمد رضا فاتحی
سه شنبه 02 تیر 1394, 17:38 عصر
ممنون
بعد از اینکه erorمیده بازم اطلاعات و ثبت می کنه

چه اروری میده؟؟ اگه منظورتون تعداد ارقام رو خطا میده که به نظرم یه جای کار رو اشتباه کردید و اگه از if و else استفاده نمی کنید بعد از متن خطا یه return استفاده کنید

Hlpof313
سه شنبه 02 تیر 1394, 17:41 عصر
چه اروری میده؟؟ اگه منظورتون تعداد ارقام رو خطا میده که به نظرم یه جای کار رو اشتباه کردید و اگه از if و else استفاده نمی کنید بعد از متن خطا یه return استفاده کنید

if (!Regex.IsMatch(textBox13.TextLength == 10))
{


MessageBox.Show("تعداد ارقام کد ملی را صحیح وارد نمایید");
textBox13.Focus();
return;
}
از این کد استفاده میکنم مسیج باکس اجرا میشه ولی تاثیری نداره دوباره عدد زیر ده رقم ثبت میشه

aliagamon
سه شنبه 02 تیر 1394, 17:43 عصر
شما به بد شکلی دارین این کدو استفاده میکنین حتما .... باید اینطوری استفاده کنید توی باتن مربوظ به ثبت نوشته بشه حتما

if (textBox1.TextLength < 10) {
MessageBox.Show("تعداد ارقام کد ملی را صحیح وارد نمایید");
return;
}
//Code SAbt ya harchizedige

mehrdad1991h
سه شنبه 02 تیر 1394, 23:02 عصر
یعنی من واقعا در تعجبم کاری که با Masktextbox بدون نیاز به هیچ چیزی انجام میشه را چرا انقدر میپیچونید برای خودتون ؟
با textbox الان کارت راه میوفته ولی مطمئن هستم در اینده مشکل ساز میشه برات
موفق باشی

محمد رضا فاتحی
چهارشنبه 03 تیر 1394, 09:52 صبح
خیلی موافق نیستم با حرفتون... درسته کار با masktextbox کار رو راحت می کنه ولی استفاده از textbox به هیچ عنوان نمی تونه در آینده مشکل ساز بشه... مهم اینه که درست استفاده بشه... هم میشه کاری کرد حرف (فارسی ، انگلیسی)، عددوارد کرد و .........

mehrdad1991h
چهارشنبه 03 تیر 1394, 10:01 صبح
خیلی موافق نیستم با حرفتون... درسته کار با masktextbox کار رو راحت می کنه ولی استفاده از textbox به هیچ عنوان نمی تونه در آینده مشکل ساز بشه... مهم اینه که درست استفاده بشه... هم میشه کاری کرد حرف (فارسی ، انگلیسی)، عددوارد کرد و .........

بله اگر درست استفاده بشه هیچ مشکلی پیش نخواهد امد منتها برای استفاده ی درست خیلی کد های دیگه هم لازمه و خیلی موارد دیگه را هم باید در نظر بگیرید که الان مورد توجه قرار نگرفتند !
و در پاسخ به این که اگردرست نوشته بشه کار میکنه هم باید بگم
یک برنامه را 10 نفر با 10 کد کاملا متفاوت مینویسند و همه ی انها هم بدون مشکل کار میکنه !
ولی مسئله اینجاست که ایا همه ی کد ها ی نوشته شده دارای ارزش یکسانی هستند ؟

(شما برای این کار یک کنترل جدید بسازید بهتر از اینه که از تکست باکس استفاده بشه !)
موفق باشید