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

نام تاپیک: مشکل در ایجاد Textbox عددی

  1. #1

    مشکل در ایجاد Textbox عددی

    سوال ۴ فصل ۵ کتاب سی‌شارپ قمی اینه که دو تا عدد ۱۰۰ رقمی رو جمع بزنیم و فیلدهای تکست فقط محتوای عددی بگیرن.
    مشکل در ایجاد تسکت‌باکسیه که فقط عدد بگیره، تمام راه‌های موجود واسه اینکار رو امتحان کردم، از راه‌هایی که اینجا معرفی شده، تا دنی‌وب و استک‌آورفلو و ... منتها جواب نگرفتم، یعنی همچنان توی تکست‌باکس‌ها میتونم حروف رو وارد کنم! مبتدی هستم و نمیدونم که مشکل از کجای کده، اگر از دوستان کسی زحمت مرورش رو بکشه ممنون میشم :)
    آخرین کدی که استفاده کردم این بوده:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;

    namespace S5T4
    {
    public partial class mainForm : Form
    {
    public mainForm()
    {
    InitializeComponent();
    }

    private void firstNum_KeyPress(object sender, KeyPressEventArgs e)
    {
    if (Char.IsLetter(e.KeyChar))
    {
    e.Handled = true;
    }
    }

    private void secondNum_KeyPress(object sender, KeyPressEventArgs e)
    {
    if (Char.IsLetter(e.KeyChar))
    {
    e.Handled = true;
    }
    }

    private void calcButton_Click(object sender, EventArgs e)
    {
    int[] first = new int[100];
    int[] second = new int[100];
    int[] result = new int[100];
    string resultPrint = "";
    int temp, carry = 0;

    if (firstNum.Text.Length == 100 && secondNum.Text.Length == 100)
    {
    for (int n = 0; n < first.Count(); n++)
    {
    first[n] = firstNum.Text[n] - '0';
    second[n] = secondNum.Text[n] - '0';
    }

    for (int i = first.Count() - 1; i >= 0; i--)
    {
    temp = first[i] + second[i] + carry;
    result[i] = temp % 10;
    carry = temp / 10;

    if (i == 0)
    {
    result[i] = temp;
    }
    }

    for (int j = 0; j <= result.Count() - 1; j++)
    {
    resultPrint += result[j].ToString();
    }

    MessageBox.Show(resultPrint);
    }
    else
    MessageBox.Show("Please insert two 100 digits numbers");
    }
    }
    }

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

    نقل قول: مشکل در ایجاد Textbox عددی

    چرا از MaskTextBox استفاده نمیکنی؟؟؟

  3. #3
    کاربر تازه وارد آواتار ace_sina
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    rasht
    پست
    42

    نقل قول: مشکل در ایجاد Textbox عددی

    تو رویداد KeyPress اون تکست باکسی که میخوای فقط عدد توش چاپ بشه ، کد زیر رو وارد کن :

                if (!(char.IsDigit(e.KeyChar) || e.KeyChar == (char)Keys.Back))
    e.Handled = true;

  4. #4

    نقل قول: مشکل در ایجاد Textbox عددی

    تو رویداد KeyPress اون تکست باکسی که میخوای فقط عدد توش چاپ بشه ، کد زیر رو وارد کن : تا ممیز هم کار کنه
    if (!(char.IsDigit(e.KeyChar) || e.KeyChar == (char)Keys.Back || e.KeyChar == (char)46))
    e.Handled = true;

  5. #5

    نقل قول: مشکل در ایجاد Textbox عددی

    نقل قول نوشته شده توسط uniqueboy_ara مشاهده تاپیک
    چرا از MaskTextBox استفاده نمیکنی؟؟؟
    راستش واحد برنامه‌سازی پیشرفته‌م رو با این کتاب تدریس میکنن و ظاهرا باید با رویدادها کنترل بشه.

    نقل قول نوشته شده توسط ace_sina مشاهده تاپیک
    تو رویداد KeyPress اون تکست باکسی که میخوای فقط عدد توش چاپ بشه ، کد زیر رو وارد کن :

                if (!(char.IsDigit(e.KeyChar) || e.KeyChar == (char)Keys.Back))
    e.Handled = true;
    نقل قول نوشته شده توسط amjtia مشاهده تاپیک
    تو رویداد KeyPress اون تکست باکسی که میخوای فقط عدد توش چاپ بشه ، کد زیر رو وارد کن : تا ممیز هم کار کنه
    if (!(char.IsDigit(e.KeyChar) || e.KeyChar == (char)Keys.Back || e.KeyChar == (char)46))
    e.Handled = true;
    ممنون دوستان، متاسفانه جواب ندادن، خیلی کد امتحان کردم ولی واقعا نمیفهمم چرا جواب نمیده!

  6. #6
    کاربر دائمی آواتار AliRezaPro
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    PE Header
    پست
    1,054

    نقل قول: مشکل در ایجاد Textbox عددی


    if (!(char.IsDigit(e.KeyChar) || e.KeyChar == (char)Keys.Back))
    {
    e.Handled = true;
    }
    else
    {
    e.Handled = false;
    }

  7. #7
    کاربر تازه وارد آواتار hamirayan
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    شمال وطنم
    پست
    46

    نقل قول: مشکل در ایجاد Textbox عددی

    نقل قول نوشته شده توسط kami.awz مشاهده تاپیک
    سوال ۴ فصل ۵ کتاب سی‌شارپ قمی اینه که دو تا عدد ۱۰۰ رقمی رو جمع بزنیم و فیلدهای تکست فقط محتوای عددی بگیرن.
    مشکل در ایجاد تسکت‌باکسیه که فقط عدد بگیره، تمام راه‌های موجود واسه اینکار رو امتحان کردم، از راه‌هایی که اینجا معرفی شده، تا دنی‌وب و استک‌آورفلو و ... منتها جواب نگرفتم، یعنی همچنان توی تکست‌باکس‌ها میتونم حروف رو وارد کنم! مبتدی هستم و نمیدونم که مشکل از کجای کده، اگر از دوستان کسی زحمت مرورش رو بکشه ممنون میشم :)
    آخرین کدی که استفاده کردم این بوده:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;

    namespace S5T4
    {
    public partial class mainForm : Form
    {
    public mainForm()
    {
    InitializeComponent();
    }

    private void firstNum_KeyPress(object sender, KeyPressEventArgs e)
    {
    if (Char.IsLetter(e.KeyChar))
    {
    e.Handled = true;
    }
    }

    private void secondNum_KeyPress(object sender, KeyPressEventArgs e)
    {
    if (Char.IsLetter(e.KeyChar))
    {
    e.Handled = true;
    }
    }

    private void calcButton_Click(object sender, EventArgs e)
    {
    int[] first = new int[100];
    int[] second = new int[100];
    int[] result = new int[100];
    string resultPrint = "";
    int temp, carry = 0;

    if (firstNum.Text.Length == 100 && secondNum.Text.Length == 100)
    {
    for (int n = 0; n < first.Count(); n++)
    {
    first[n] = firstNum.Text[n] - '0';
    second[n] = secondNum.Text[n] - '0';
    }

    for (int i = first.Count() - 1; i >= 0; i--)
    {
    temp = first[i] + second[i] + carry;
    result[i] = temp % 10;
    carry = temp / 10;

    if (i == 0)
    {
    result[i] = temp;
    }
    }

    for (int j = 0; j <= result.Count() - 1; j++)
    {
    resultPrint += result[j].ToString();
    }

    MessageBox.Show(resultPrint);
    }
    else
    MessageBox.Show("Please insert two 100 digits numbers");
    }
    }
    }
    سلام کافیه در رویداد key press این تکه کد رو بنویسی:
     private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
    if (e.KeyChar < '0' || e.KeyChar > '9')
    {
    e.Handled = true;
    }
    }

  8. #8

    نقل قول: مشکل در ایجاد Textbox عددی

    ممنون از دوستان، ولی مشکل حل نشد، همونطور که گفتم مشکل از کد نیست، جاییه که من ازش سر در نمیارم، واقعا نمیفهمم چرا اجرا نمیشه. کسی از دوستان این کد رو ران کرده ببینه جواب میده یا نه؟

  9. #9
    کاربر دائمی آواتار sobaisobai
    تاریخ عضویت
    آذر 1388
    محل زندگی
    Tehran
    پست
    490

    نقل قول: مشکل در ایجاد Textbox عددی

    سلام
    کد زیر رو تو KeyPress تکست باکست بنویس
    if (!(char.IsDigit(e.KeyChar) || char.IsControl(e.KeyChar)))
    {
    e.Handled = true;
    }

  10. #10
    کاربر تازه وارد
    تاریخ عضویت
    مهر 1389
    محل زندگی
    تهران
    پست
    78

    نقل قول: مشکل در ایجاد Textbox عددی

    یا اول کد صفحت بنویس :
    txt_Person_CardMelli_Code.KeyDown += new KeyEventHandler(IsNumber);

    بعد تابع زیر رو استفاده کن .


    public void IsNumber(object sender, KeyEventArgs e)
    {
    if ((e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9) &&
    (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9) &&
    e.KeyCode != Keys.Back && e.KeyCode != Keys.Delete &&
    e.KeyCode != Keys.Tab && e.KeyCode != Keys.Right && e.KeyCode != Keys.Left)

    e.SuppressKeyPress = true;
    }


    در ضمن اگه از دوستان یکی ، User Control مربوط به این رو بسازه ممنونش میشم .

  11. #11
    کاربر دائمی آواتار uniqueboy_ara
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    تهران
    پست
    420

    نقل قول: مشکل در ایجاد Textbox عددی

    از این استفاده کن جواب میده
     if (!Char.IsDigit(e.KeyChar))
    {

    e.Handled = true;

    }

  12. #12

    نقل قول: مشکل در ایجاد Textbox عددی

            private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
    e.Handled = !(Char.IsNumber(e.KeyChar) || Char.IsControl(e.KeyChar));
    }

  13. #13

    نقل قول: مشکل در ایجاد Textbox عددی

    ممنون، ولی بازم جواب نداد :|

  14. #14
    کاربر دائمی آواتار sobaisobai
    تاریخ عضویت
    آذر 1388
    محل زندگی
    Tehran
    پست
    490

    نقل قول: مشکل در ایجاد Textbox عددی

    کدی که نوشتی رو بذار تا ببینیم چرا جواب نمیده

  15. #15

    نقل قول: مشکل در ایجاد Textbox عددی

    صفحه اول گذاشتم کامل

  16. #16
    کاربر دائمی آواتار electro_esma
    تاریخ عضویت
    شهریور 1390
    محل زندگی
    تهران
    پست
    236

    نقل قول: مشکل در ایجاد Textbox عددی

    دوست من

    نگاه کن این یه پروژه سادست واست نوشتم یه نگاه بنداز ببین که داره با همین کد های ساده کار می کنه و هیچ چیز به جز عدد نمی شه وارد کرد.

    لینک

  17. #17
    کاربر دائمی آواتار sobaisobai
    تاریخ عضویت
    آذر 1388
    محل زندگی
    Tehran
    پست
    490

    نقل قول: مشکل در ایجاد Textbox عددی

    مشکل نداره که
    ارور میده؟یا تغییرات اعمال نمیشه؟

  18. #18
    کاربر دائمی آواتار electro_esma
    تاریخ عضویت
    شهریور 1390
    محل زندگی
    تهران
    پست
    236

    نقل قول: مشکل در ایجاد Textbox عددی

    اینم شکلش

    شاید بدرد بخوره

    3234.JPG

  19. #19

    نقل قول: مشکل در ایجاد Textbox عددی

    فایلی که فرستاده بودید رو تست کردم کار میکنه ولی همچنان کد خودم کار نمیکنه! :|
    اروری نمیگیرم ولی حروف هم داخل تسکت‌باکس‌ها تایپ میشه، بر خلافی چیزی که توی کد خواستم

  20. #20
    کاربر دائمی آواتار sobaisobai
    تاریخ عضویت
    آذر 1388
    محل زندگی
    Tehran
    پست
    490

    نقل قول: مشکل در ایجاد Textbox عددی

    کد رویداد keyPress تکست باکست رو بذار

  21. #21
    کاربر تازه وارد آواتار amin mohamadi
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    تهران
    پست
    57

    نقل قول: مشکل در ایجاد Textbox عددی

    بنویس توی keypress تکس باکست من همیشه همین کارو میکنم جواب هم میده

    if ((e.KeyChar != (char)8) && (!char.IsDigit(e.KeyChar)))
    e.Handled = true;

  22. #22

    نقل قول: مشکل در ایجاد Textbox عددی

    خب! قضیه جالب شد، فایلی که دوستمون گذاشته بود بدون مشکل کار میکنه. زمانی که تکست‌باکس جدید اضافه میکنم و کد رو مینویسم تکست‌باکس جدید حروف هم میپذیره ولی تکست‌باکس‌هایی که از قبل هستن مشکلی ندارن و فقط عدد میگیرن!
    کجای این قضیه ایراد داره، نمیدونم!

    روند کار اینه که: یه تکست‌باکس اضافه میکنم، بعد میرم توی کد فرم و یه رویداد کی‌پرس واسه تکست‌باکس مینویسم، شما کاری غیر از این میکنید؟

  23. #23

    نقل قول: مشکل در ایجاد Textbox عددی

    روند کار اینه که: یه تکست‌باکس اضافه میکنم، بعد میرم توی کد فرم و یه رویداد کی‌پرس واسه تکست‌باکس مینویسم، شما کاری غیر از این میکنید؟
    بله!
    شما اینبار از پنجره ی Properties سمت راست، رویداد KeyPress رو پیدا کن و حتماً روی آن دو بار کلیک کن، فایلهای دیگری هستند که باید کد مربوط به رویداد، در اونها هم معرفی بشن، با دابل کلیک روی این رویداد از پنجره Properties مشکلت بر طرف میشه چون ویژوال استودیو خودش این کد رو اضافه میکنه، دور از چشمان شما!
    همه دوستان تقریباً روی یک کد، اتفاق نظر دارند!

    در کل، مشکلت اینجاست:
    یه رویداد کی‌پرس واسه تکست‌باکس مینویسم

    کد کی پرس رو خودت ننویس، درست میشه.
    آخرین ویرایش به وسیله سوداگر : شنبه 21 آبان 1390 در 01:07 صبح

  24. #24

    نقل قول: مشکل در ایجاد Textbox عددی

    هولی شت، درست شد
    ممنون آقا ^_^

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

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

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