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

نام تاپیک: TextBox فقط عدد بگیرد (بدون استفاده از KeyPress) (با استفاده از Class)

  1. #1

    TextBox فقط عدد بگیرد (بدون استفاده از KeyPress) (با استفاده از Class)

    سلام
    خوبین؟
    چطور میتونم بدون اسبفاده از KeyPress و با یه کلاس کاری کنم که TextBox بجز عدد و . حرف دیگه ای نگیره؟
    مرسی

  2. #2
    کاربر دائمی آواتار Mohsen229266
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    تهران
    سن
    36
    پست
    396

    نقل قول: TextBox فقط عدد بگیرد (بدون استفاده از KeyPress) (با استفاده از Class)

    با سلام دوست عزیز منظورتون از "بدون استفاده از KeyPress" چیه بالاخره باید کلید فشرده شده رو بفهمیم چه کلیدی بوده که تشخیص عدد بودن یا نبودنشو بدم دیگه !!!؟
    لطفا کمی در مورد سوالتون توضیح بدید تا منظورتونو متوجه بشیم

  3. #3

    نقل قول: TextBox فقط عدد بگیرد (بدون استفاده از KeyPress) (با استفاده از Class)

    نقل قول نوشته شده توسط pishraft مشاهده تاپیک
    سلام
    خوبین؟
    چطور میتونم بدون اسبفاده از KeyPress و با یه کلاس کاری کنم که TextBox بجز عدد و . حرف دیگه ای نگیره؟
    مرسی
    سلام.
    یک کلاس جدید ایجاد کنید، سپس اونو از TextBox مشتق کنید (به این کار میگن Subclass کردن TextBox)...
    سپس اونجا متود OnKeyPress رو override کنید... هر جا هم از این مدل TextBox ها خواستید، باید کلاس
    جدید ایجاد شده رو new کنید و ... برای مشاهده نمونه کد می تونید به این آدرس رجوع کنید.

    موفق باشید.

  4. #4

    نقل قول: TextBox فقط عدد بگیرد (بدون استفاده از KeyPress) (با استفاده از Class)

    منظورم از KeyPress این هست :

    privatevoid textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
    }


    ممنون آقا مهدی ولی لینکی که فرستادین باز نمیشه
    میشه بیشتر توضیح بدین؟
    مرسی

  5. #5

    نقل قول: TextBox فقط عدد بگیرد (بدون استفاده از KeyPress) (با استفاده از Class)

    اور راید کردن:

    protectedoverridevoid OnKeyPress(KeyPressEventArgs e)

    مشتق کرد کلاس:

    publicpartialclassTxt:System.Windows.Forms.TextBox

    کد تایپ اعداد:

    String ValidChars;
    ValidChars =
    "0123456789.";
    if (ValidChars.Contains(e.KeyChar) == false) e.KeyChar = Convert.ToChar(9);

    سر هم کردنش هم با خودت

  6. #6

    نقل قول: TextBox فقط عدد بگیرد (بدون استفاده از KeyPress) (با استفاده از Class)

    البته د رکد بالا اگه بجای ValidChars از خود کلاس Char استفاده کنین بهتره.
    از این متد استفاده کنین Char.IsNumber و بصورن جداگانه "." رو هم چک کنین
    و این رو هم چک کنین که "." حداکثر یکبار بیاد

  7. #7

    نقل قول: TextBox فقط عدد بگیرد (بدون استفاده از KeyPress) (با استفاده از Class)

    نقل قول نوشته شده توسط shuriken مشاهده تاپیک
    البته د رکد بالا اگه بجای ValidChars از خود کلاس Char استفاده کنین بهتره.
    از این متد استفاده کنین Char.IsNumber و بصورن جداگانه "." رو هم چک کنین
    و این رو هم چک کنین که "." حداکثر یکبار بیاد
    validchars کلاس نیست یک متغیر از نوع string تعریف کردم!

  8. #8

    نقل قول: TextBox فقط عدد بگیرد (بدون استفاده از KeyPress) (با استفاده از Class)

    سر هم کردنش هم با خودت
    مرسی
    راستش من نمیدونم چطور Override رو از Class فراخوانی کنم!
    من تا حالا با این توابع کار نکرده بودم
    میشه لطفا بیشتر توضیح بدید؟
    مرسی
    تازه کاری و کم تجربگیه

  9. #9

    نقل قول: TextBox فقط عدد بگیرد (بدون استفاده از KeyPress) (با استفاده از Class)

    بله میدونم
    این رو به این دلیل گفتم که ممکنه از اعدادی در فرمتهای دیگه (مثل اعداد فارسی) استفاده بشه که در اون صورت
    کد شما اونهارو رد میکنه ولی ساختار char خودش این موارد رو اصلاح میکنه.
    در مورد override کردن هم اصلا کار سختی نیست به صورت زیر میشه در کلاس مشتق شده توابع کلاس پدر رو override کرد:
    protected override [return value of method] [method name]

  10. #10

    نقل قول: TextBox فقط عدد بگیرد (بدون استفاده از KeyPress) (با استفاده از Class)

    نقل قول نوشته شده توسط shuriken مشاهده تاپیک
    بله میدونم
    این رو به این دلیل گفتم که ممکنه از اعدادی در فرمتهای دیگه (مثل اعداد فارسی) استفاده بشه که در اون صورت
    کد شما اونهارو رد میکنه ولی ساختار char خودش این موارد رو اصلاح میکنه.
    در مورد override کردن هم اصلا کار سختی نیست به صورت زیر میشه در کلاس مشتق شده توابع کلاس پدر رو override کرد:
    protected override [return value of method] [method name]
    وقتی nonunicode فارسی هم بشه بصورت اتومات کی کدها رو به هم تبدیل میکنه یعنی رشته ای که در بالا نوشته شده برای فرسی هم قابل اجراست.امتحان کنید!

  11. #11

    نقل قول: TextBox فقط عدد بگیرد (بدون استفاده از KeyPress) (با استفاده از Class)

    میتونم خواهش کنم که بصورت کد کاملتر قرار بدید؟
    من نتونستم ازش استفاده کنم

  12. #12

    نقل قول: TextBox فقط عدد بگیرد (بدون استفاده از KeyPress) (با استفاده از Class)

    این یه قسمت کوچیکشه

    public class MyTextBox:System.Windows.Forms.TextBox
    protected override void OnKeyPress(KeyPressEventArgs e)
    {
    if(Char.IsNumber(e.KeyChar)||(e.KeyChar == '.' && !this.Text.Contain("."))
    {
    //enter your syntax
    }
    }

  13. #13

    نقل قول: TextBox فقط عدد بگیرد (بدون استفاده از KeyPress) (با استفاده از Class)

    مرسی
    من با راهنماییای قبلی تا اینجا پیش اومده بودم ولی نمیدونم از این کد چطور استفاده کنم

  14. #14
    کاربر دائمی آواتار m.soleimani
    تاریخ عضویت
    دی 1386
    محل زندگی
    اصفهان
    پست
    639

    نقل قول: TextBox فقط عدد بگیرد (بدون استفاده از KeyPress) (با استفاده از Class)

    با توضیحاتی که دوستان دادن مشکل داری یا اصلن مشکلت حل نشده ؟

    راستش من نمیدونم چطور Override رو از Class فراخوانی کنم!
    override برای متدهایی استفاده می‌شه که به صورت virtual تعریف شده باشن و شما نیاز داری که توی تعریف اولیه اون‌ها دست ببری و برای خودت بهینه‌ترشون کنی امیدوارم خوب نوشته باشم موفق باشی./

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

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