نمایش نتایج 1 تا 14 از 14

نام تاپیک: محدودیت گذاشتن روی TextBox

  1. #1
    کاربر دائمی آواتار booysusa
    تاریخ عضویت
    شهریور 1391
    محل زندگی
    ایران سرای من است
    پست
    174

    Question محدودیت گذاشتن روی TextBox

    درود

    برای TextBox میخوام یکسری محدودیت ایجاد کنم مانند:
    1. کاربر فقط امکان وارد کردن شماره داشته باشد
    2. کاربر فقط بتواند 12 عدد وارد کند (اگر بیش از 12 عدد وارد کند یک پیغام خطا مواجه شود که شما نمی توانید بیش از 12 کاراکتر وارد کنید)


    و اینکه هربار که روی تب کلیک میکنم، وقتی میره TextBox بعدی همه متن موجود در TextBox بعدی رو سکلکت کنه.

    در یک پست دیدم یکی از مهندسان عزیز لطف کردن و یک کامپوننت گذاشته بود، ولی من بدون کامپوننت میخوام این کارو کنم اگر بشه(البته کدنویسی نداشته باشه خوبه)


    راستی نظرتون در مورد این کامپوننت چی هست؟

    لینک کامپوننت

    سپاس
    آخرین ویرایش به وسیله booysusa : دوشنبه 26 فروردین 1398 در 20:07 عصر

  2. #2
    کاربر دائمی
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تهران
    پست
    212

    نقل قول: محدودیت گذاشتن روی TextBox

    روشی که به نظر میرسه کنترل کد اسکی وارد شده هست
    هر بار که اطلاعات وارد میشه در TextChange کنترل بشه که در محدوده اعدا باشه و اون رو به تکست باکس اضافه کنه

  3. #3

    نقل قول: محدودیت گذاشتن روی TextBox

    بابت موضوع شما بگم بنده داخل این فایل https://barnamenevis.org/showthread.p...8C%D8%B3%DB%8C که این تاپیک بنده هستش کامپوننت درسته گفتید نباشه ولی متوانید اون دستور عددی جدا کنید ولی استفاده از کامپوننت کار راحتر میکنه شما از کامپوننت عددی استفاده میکنید ولی برای محدود کردن طول عدد با یک دستور ساده شرطی جلوش میگیرید و بیشتر از 12 عدد نده بایک شرط if
    به طور مثال بنده برای تلفن نوشتم

    string peshtel = Txt_R_Tel.Text;
    if (Txt_R_Tel.Text.Length < 11|| !peshtel.StartsWith("0"))
    {
    messages.Append(msg.Tel("تلفن"));
    isValid = false;
    }

    اگه تلفن کاربر تعدادش کمتز از 11 و همین طور با صفر شروع نشه پیغام به میده شماره تلفن اشتباه هستش

  4. #4
    کاربر دائمی آواتار booysusa
    تاریخ عضویت
    شهریور 1391
    محل زندگی
    ایران سرای من است
    پست
    174

    نقل قول: محدودیت گذاشتن روی TextBox

    نقل قول نوشته شده توسط MMR_1234 مشاهده تاپیک
    روشی که به نظر میرسه کنترل کد اسکی وارد شده هست
    هر بار که اطلاعات وارد میشه در TextChange کنترل بشه که در محدوده اعدا باشه و اون رو به تکست باکس اضافه کنه
    با این اوصاف باد کدنویسی کنم و در پروپرتی ویژگی در این مورد نیست
    آخرین ویرایش به وسیله booysusa : چهارشنبه 28 فروردین 1398 در 08:06 صبح دلیل: اصلاح غلط املایی

  5. #5
    کاربر دائمی آواتار booysusa
    تاریخ عضویت
    شهریور 1391
    محل زندگی
    ایران سرای من است
    پست
    174

    نقل قول: محدودیت گذاشتن روی TextBox

    نقل قول نوشته شده توسط davidrobert مشاهده تاپیک
    بابت موضوع شما بگم بنده داخل این فایل https://barnamenevis.org/showthread.p...8C%D8%B3%DB%8C که این تاپیک بنده هستش کامپوننت درسته گفتید نباشه ولی متوانید اون دستور عددی جدا کنید ولی استفاده از کامپوننت کار راحتر میکنه شما از کامپوننت عددی استفاده میکنید ولی برای محدود کردن طول عدد با یک دستور ساده شرطی جلوش میگیرید و بیشتر از 12 عدد نده بایک شرط if
    به طور مثال بنده برای تلفن نوشتم

    string peshtel = Txt_R_Tel.Text;
    if (Txt_R_Tel.Text.Length < 11|| !peshtel.StartsWith("0"))
    {
    messages.Append(msg.Tel("تلفن"));
    isValid = false;
    }

    اگه تلفن کاربر تعدادش کمتز از 11 و همین طور با صفر شروع نشه پیغام به میده شماره تلفن اشتباه هستش

    سپاس مهندس، آیا استفاده از چند کامپوننت باعث کندی بیش از حد برنامه نمیشه؟
    چطور جلوگیری کنم از این کار؟
    الان کامپوننت Text بزارم، بنظرتون چقدر در کند بودن برنامه تاثیر گذار هست؟

  6. #6

    نقل قول: محدودیت گذاشتن روی TextBox

    نقل قول نوشته شده توسط booysusa مشاهده تاپیک
    با این اوضاف باد کدنویسی کنم و در پروپرتی ویژگی در این مورد نیست
    برای عدد نویسی رویداد KeyPress هستش و اینم بگم نه کامپوننت نویسی سرعت کند نمیکنه بلکه کار و سرعت کدنویسی هم بیشتر میکنه چرا از ابزار ها و یا دستورات اشتباه به کار ببرید باعث افت شدید سرعت میشه به طور مثال بنده قبلا از شماره ردیف استفاده میکردم داخل DataGridview روی ستون که وقتی اطلاعات لود میشود روی ستون سمت راست شماره ردیف مینداخت ولی 100 تا رکورد 3 ثانیه و هر چقدر بیشتر میشود بیشتر زمان میبرد ولی الان ردیف از داخل دیتاگرید ویو برداشتم و از دیتابیس ردیف میاره به ترتیب و کلی اطلاعات یک ثانیه و زیر 1 ثانیه میاره برای نمایش چون لود اطلاعات باعث میشود 100 تا رکورد بیفته داخل حلقه for چون داخل حلقه میفتاد و هرچقدر اطلاعات بیشتر میشود سرعت لود هم بیشتر میشود ولی با کدنویسی استاندارد خیالت راحت هم کدنویسی کمتری دارید و هم سرعت خوبی تو برنامه به قول استادم از کامپوننت های ساخت خودت استفاده کن ولی از کامپوننت های اماده نه که ازار اذیت زیاد دارن.

  7. #7

    نقل قول: محدودیت گذاشتن روی TextBox

    نقل قول نوشته شده توسط booysusa مشاهده تاپیک
    با این اوضاف باد کدنویسی کنم و در پروپرتی ویژگی در این مورد نیست
    با سلام
    من یه چیزی شبیه اونچه شما میخاید نوشتم.شاید یه دردتون بخوره.

    https://barnamenevis.org/showthread.p...B1%D8%B4%DB%8C

  8. #8
    کاربر دائمی آواتار booysusa
    تاریخ عضویت
    شهریور 1391
    محل زندگی
    ایران سرای من است
    پست
    174

    نقل قول: محدودیت گذاشتن روی TextBox

    نقل قول نوشته شده توسط mandagarana مشاهده تاپیک
    با سلام
    من یه چیزی شبیه اونچه شما میخاید نوشتم.شاید یه دردتون بخوره.

    https://barnamenevis.org/showthread.p...B1%D8%B4%DB%8C
    سپاس بررسی کردم، خوب بود ولی کدهای بسیار زیادی دارد ، برای من که در هر فرم بیش از 10 Textbox دارم استفاده از این حجم کد کمی زیاد هست، ولی با اجازه دانلود کردم، میدانم روزی به کارم خواهد آمد

  9. #9
    کاربر دائمی آواتار booysusa
    تاریخ عضویت
    شهریور 1391
    محل زندگی
    ایران سرای من است
    پست
    174

    نقل قول: محدودیت گذاشتن روی TextBox

    نقل قول نوشته شده توسط davidrobert مشاهده تاپیک
    برای عدد نویسی رویداد KeyPress هستش و اینم بگم نه کامپوننت نویسی سرعت کند نمیکنه بلکه کار و سرعت کدنویسی هم بیشتر میکنه چرا از ابزار ها و یا دستورات اشتباه به کار ببرید باعث افت شدید سرعت میشه به طور مثال بنده قبلا از شماره ردیف استفاده میکردم داخل DataGridview روی ستون که وقتی اطلاعات لود میشود روی ستون سمت راست شماره ردیف مینداخت ولی 100 تا رکورد 3 ثانیه و هر چقدر بیشتر میشود بیشتر زمان میبرد ولی الان ردیف از داخل دیتاگرید ویو برداشتم و از دیتابیس ردیف میاره به ترتیب و کلی اطلاعات یک ثانیه و زیر 1 ثانیه میاره برای نمایش چون لود اطلاعات باعث میشود 100 تا رکورد بیفته داخل حلقه for چون داخل حلقه میفتاد و هرچقدر اطلاعات بیشتر میشود سرعت لود هم بیشتر میشود ولی با کدنویسی استاندارد خیالت راحت هم کدنویسی کمتری دارید و هم سرعت خوبی تو برنامه به قول استادم از کامپوننت های ساخت خودت استفاده کن ولی از کامپوننت های اماده نه که ازار اذیت زیاد دارن.
    سپاسگزارم، استفاده میکنم از این نکته

  10. #10
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    چند قدم اون ور تر
    پست
    1,731

    نقل قول: محدودیت گذاشتن روی TextBox

    نقل قول نوشته شده توسط booysusa مشاهده تاپیک
    سپاس بررسی کردم، خوب بود ولی کدهای بسیار زیادی دارد ، برای من که در هر فرم بیش از 10 Textbox دارم استفاده از این حجم کد کمی زیاد هست، ولی با اجازه دانلود کردم، میدانم روزی به کارم خواهد آمد
    سلام
    شما باید یک تکست باکس سفارشی برای خودتون بسازید، یعنی کدها رو در یک کلاس بنویسید که این کلاس از TextBox ارث بری میکنه. بعد از Build پروژه، این کلاس تبدیل به یک کنترل مخصوص شما می شه و در تولباکس اضافه می شه. بعد مثل تکست باکس معمولی شما این کنترل رو میکشید و روی فرم قرار میدید. دیگه نیاز به کد نویسی اضافه در هر فرم هم نداره، فقط یکبار نوشته میشه. بعدا هم اگه نیاز به تغییر بود فقط همین کلاس رو تغییر بدید در کل فرم ها تغییرات اعمال میشه.
    مثال:
    public class CustomTextBox : TextBox
    {
    protected override void OnEnter(EventArgs e)
    {
    this.SelectAll();

    this.BackColor = Color.Yellow;
    }
    protected override void OnLeave(EventArgs e)
    {
    base.BackColor = Color.White;
    }

    }

    در اینجا یک کنترل به اسم CustomTextBox به تولباکس اضافه میشه. یک ویژگیش اینه که با ورود به تکست باکس کل متن انتخاب میشه. دوم با ورود به تکست باکس رنگ پس زمینه اش زرد میشه و با خروج رنگ پس زمینه اش سفید میشه. حالا شما پراپرتی های مختلف و عملیات دیگه رو هم می تونید بهش اضافه کنید.

  11. #11

    نقل قول: محدودیت گذاشتن روی TextBox

    سلام
    اره کدهاش زیاده چون هم تقریبا کامله هم خیلی روش وقت گذاشتم.
    از طرفی من دوتا دونا جدا کردم.مال شما کمتر از این میشه.
    بیشتر شدن کدهای بیشتر به خاطر del , backspace هستش.نوشتن چندان دردسر نداره، پاک کردن ولی خیلی.
    بازم خوشحال میشم اگه به دردتون بخوره
    آخرین ویرایش به وسیله mandagarana : چهارشنبه 28 فروردین 1398 در 11:55 صبح

  12. #12

    نقل قول: محدودیت گذاشتن روی TextBox

    نقل قول نوشته شده توسط Mahmoud Zaad مشاهده تاپیک
    سلام
    شما باید یک تکست باکس سفارشی برای خودتون بسازید، یعنی کدها رو در یک کلاس بنویسید که این کلاس از TextBox ارث بری میکنه. بعد از Build پروژه، این کلاس تبدیل به یک کنترل مخصوص شما می شه و در تولباکس اضافه می شه. بعد مثل تکست باکس معمولی شما این کنترل رو میکشید و روی فرم قرار میدید. دیگه نیاز به کد نویسی اضافه در هر فرم هم نداره، فقط یکبار نوشته میشه. بعدا هم اگه نیاز به تغییر بود فقط همین کلاس رو تغییر بدید در کل فرم ها تغییرات اعمال میشه.
    مثال:
    public class CustomTextBox : TextBox
    {
    protected override void OnEnter(EventArgs e)
    {
    this.SelectAll();

    this.BackColor = Color.Yellow;
    }
    protected override void OnLeave(EventArgs e)
    {
    base.BackColor = Color.White;
    }

    }

    در اینجا یک کنترل به اسم CustomTextBox به تولباکس اضافه میشه. یک ویژگیش اینه که با ورود به تکست باکس کل متن انتخاب میشه. دوم با ورود به تکست باکس رنگ پس زمینه اش زرد میشه و با خروج رنگ پس زمینه اش سفید میشه. حالا شما پراپرتی های مختلف و عملیات دیگه رو هم می تونید بهش اضافه کنید.
    در قبال حرف دوست بزرگوار میتوانم بگم کلاس نویسی بهترین راه هستش برای ساخت ابزار پر کاربرد و تکراری مثل کادر متن که اگه میخواهید زیاد کدنویسی نکنید میتوانید از کلاس استفاده کنید یک مثال ساده میزنم.
    حساب کنید یه پروژه عملی دارید و باید به استادتون تحویل بدید برای نمره که نزدیک به 1000 تا صفحه داره که رنگش زرد هستش برای اینکه استاد بدون خوب یاد گرفتید میگه این هزار صفحه باید الان بیشن سبز تو یک ثانیه اگه شما اشتباه کرده باشید یعنی اینکه برداشته باشید دونه به دونه همه رو زرد داده باشید تو یک ثانیه که هیچ تو یک ساعت به جواب نمیرسید حتی ممکن یادتون بره کدام ها رو تغییر رنگ داده باشید و نمره صفر شامل میشه این حرف بنده به صورت مثال و قصد جسارت نیست ولی اگه طراح کار خوبی باشه طرف میاد از Css استفاده میکنه برای ارث بری داخل همه 1000 تا صفحه یک کلاس صدا میکنه و استاد میگه رنگ هزار تاش باید بشه سبز میگی مشکلی نیست میری سراغ CSS اونجا رو میکنی سبز و تمام هزار تا فایل تو یک ثانیه میشه سبز از زرد. حالا این ویژگی CSS رو درون کلاس به کار میشه برد شما یک کادر متن میسازی و درون هزار تا فرم خودتون استفاده میکنید اگه یک تغییر جزی بخواهید بدید روی هزار تا ایجاد نمیکنید میرید سراغ فایل اصلی اون اصلی درست کنید باقی شون سریع درست میشه در کمترین زمان بیشترین کار انجام دادید بخاطر همین سعی کنید کامپوننت سازی زیاد هم نه کمی یاد بگیرید که بنده هم برای یاد گیری از دوستان کمک گرفتم و یک سری درست کردم که زیاد باهاش کار میکنم به ابزار هام دادم و داخل اون دفترچه تلفن که به شما گفتم قرار دادم که شما به این صورت کدنویسی کمتری انجام میدید و به کار شما میاد.

  13. #13
    کاربر تازه وارد
    تاریخ عضویت
    اسفند 1392
    محل زندگی
    دنیایی به نام برنامه نویسی
    پست
    99

    نقل قول: محدودیت گذاشتن روی TextBox

    بدون کد نویسی این کارا بنظرتون انجام میشه؟
    آدرسی که یکی از دوستان دادن خوبه
    از اون استفاده کن لینک

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

    اگر خیلی حرفه ای کار میکنید با کامپوننت های Dev Express کار کنید و یک تکست باکس حرفه ای برای خود بنویسید.
    موفق باشید

  14. #14

    نقل قول: محدودیت گذاشتن روی TextBox

    نقل قول نوشته شده توسط nadia92 مشاهده تاپیک
    بدون کد نویسی این کارا بنظرتون انجام میشه؟
    آدرسی که یکی از دوستان دادن خوبه
    از اون استفاده کن لینک

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

    اگر خیلی حرفه ای کار میکنید با کامپوننت های Dev Express کار کنید و یک تکست باکس حرفه ای برای خود بنویسید.
    موفق باشید
    راستیتش از کامپوننت های بنده از کامپوننت های آماده مثل Dev Express هم استفاده کردم همیشه جالب نیستن و بیشتر موقع آسیب رسون به پروژه هستن به همین خاطر دیگه از هیچ کامپوننتی جز استناندارد های خود ویژال استفاده نمیکنم اگه استفاده کنم کامپوننت سفارشی خودم درست میکنم و از اون استفاده میکنم. آسیب زدن به برنامه کمتر یا نداره و میدونم چی نوشتم که ازش کم یا اضافه کنم.

تاپیک های مشابه

  1. پاسخ: 2
    آخرین پست: یک شنبه 25 آبان 1393, 10:47 صبح
  2. پاسخ: 3
    آخرین پست: سه شنبه 17 تیر 1393, 17:27 عصر
  3. مدیریت بر روی ورود داده به textbox
    نوشته شده توسط mohammad2407 در بخش C#‎‎
    پاسخ: 10
    آخرین پست: سه شنبه 22 مرداد 1392, 01:41 صبح
  4. محدودیت بر روی TEXTBOX
    نوشته شده توسط mrezasabbaghi در بخش C#‎‎
    پاسخ: 2
    آخرین پست: چهارشنبه 23 اسفند 1391, 10:03 صبح
  5. حرکت اتوماتیک بر روی TextBox به اعلام محدودیت
    نوشته شده توسط shirazi90 در بخش C#‎‎
    پاسخ: 3
    آخرین پست: شنبه 11 آذر 1391, 17:46 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •