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

نام تاپیک: ایجاد یک رویداد برای همه textbox ها

  1. #1

    Question ایجاد یک رویداد برای همه textbox ها

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

    if (txt1m.Text == "" || txt1m.Text == "0") return;
    decimal price;
    price = decimal.Parse(txt1m.Text, System.Globalization.NumberStyles.Currency);
    txt1m.Text = price.ToString("#,#");
    txt1m.SelectionStart = txt1m.Text.Length;

    حالا اگه نخواسته باشم واسه تک تک تکست باکس ها این کد رو کپی نکنم چیکار باید کنم؟
    آخرین ویرایش به وسیله Mahmoud.Afrad : دوشنبه 23 اسفند 1395 در 23:44 عصر

  2. #2

    نقل قول: ایجاد یک رویداد برای همه textbox ها

    میتونید یک user control بسازین و از تکس باکس ارث بری کنید و این ایونت رو بهش اضافه کنید و در هر جا خواستیم استفاده کنید

  3. #3
    کاربر دائمی آواتار BEHZADnr
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    کرج
    سن
    33
    پست
    185

    نقل قول: ایجاد یک رویداد برای همه textbox ها

    سلام دوست گرامی

    از کد زیر در زمان Form Load استفاده کن
    فقط به جای کد textBox1_TextChanged ،رویداد تکست باکس مورد نظرت رو بنویس

    foreach (Control ctrl in this.Controls)
    {
    if ((ctrl as TextBox) != null)
    {
    (ctrl as TextBox).TextChanged += textBox1_TextChanged;
    }
    }

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

    نقل قول: ایجاد یک رویداد برای همه textbox ها

    با سلام و اجازه دوستان،
    شما حتما حتما این مطلب رو بخونید
    در ضمن این کد همونیه که شما میخواین

    using System;
    using System.Windows.Forms;

    namespace WindowsFormsApplication13
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    foreach (Control ctrl in this.Controls)
    {
    if (ctrl is TextBox)
    {
    ctrl.TextChanged += textChange;
    }
    }
    }

    void textChange(object sender, EventArgs e)
    {
    var textBox = sender as TextBox;
    Double value;
    if (Double.TryParse(textBox.Text, out value))
    textBox.Text = string.Format("{0:#,##0}", value);
    else
    textBox.Text = String.Empty;
    }
    }
    }


  5. #5

    نقل قول: ایجاد یک رویداد برای همه textbox ها

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

    private void Form1_Load(object sender, EventArgs e)
    {
    foreach (Control ctrl in this.Controls)
    {
    if ((ctrl as TextBox) != null)
    {
    (ctrl as TextBox).TextChanged += txt1m_TextChanged;
    }
    }
    }
    private void txt1m_TextChanged(object sender, EventArgs e)
    {


    if (txt1m.Text == "" || txt1m.Text == "0") return;
    decimal price;
    price = decimal.Parse(txt1m.Text, System.Globalization.NumberStyles.Currency);
    txt1m.Text = price.ToString("#,#");
    txt1m.SelectionStart = txt1m.Text.Length;
    }



    نقل قول نوشته شده توسط BEHZADnr مشاهده تاپیک
    سلام دوست گرامی

    از کد زیر در زمان Form Load استفاده کن
    فقط به جای کد textBox1_TextChanged ،رویداد تکست باکس مورد نظرت رو بنویس

    foreach (Control ctrl in this.Controls)
    {
    if ((ctrl as TextBox) != null)
    {
    (ctrl as TextBox).TextChanged += textBox1_TextChanged;
    }
    }

  6. #6
    کاربر دائمی آواتار یونس ابراهیمی
    تاریخ عضویت
    آذر 1391
    محل زندگی
    کوهدشت
    سن
    42
    پست
    195

    نقل قول: ایجاد یک رویداد برای همه textbox ها

    سلام، کد رو کامل تست کردم و گذاشتم، درسته
    شما چند تا تکس باکس بذارین رو فرم و با زدن دکمه F7 به محیط کدنویسی برین و 17-11 و 28-20 رو تو جاهای مربوطه کپی کنید. البته کد بالا یه ایرادی داره و باعث میشه که همه تکس باکس ها سه رقم سه رقم اعدادشون از هم جدا بشه و اگر بخواین به جای عدد حرف وارد کنید اون موقع پیغام خطا میده برنامتون. کد زیر اصلاح شده کد بالاست و هر تکس باکسی که دوست داشته باشین می تونید بگین که ارقامش سه تا سه تا از هم جدا بشن


    using System;
    using System.Windows.Forms;

    namespace WindowsFormsApp2
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();

    this.textBox1.TextChanged += new System.EventHandler(this.textChange);
    this.textBox2.TextChanged += new System.EventHandler(this.textChange);

    }

    void textChange(object sender, EventArgs e)
    {
    var textBox = sender as TextBox;
    Double value;
    if (Double.TryParse(textBox.Text, out value))
    textBox.Text = string.Format("{0:#,##0}", value);
    else
    textBox.Text = String.Empty;
    }
    }
    }



    مثلا در خط 12 به جای نام textBox1 بنویسین txtm1 یا بجای textbox2 اسم هر تکس باکسی که خودتون دارین رو بنویسین
    آخرین ویرایش به وسیله یونس ابراهیمی : سه شنبه 24 اسفند 1395 در 19:55 عصر

  7. #7

    نقل قول: ایجاد یک رویداد برای همه textbox ها

    حالا من میخوام همه تکست باکس هایی که دارم وقتی عددش رو تایپ کرد و از اون خارج شد همه ش با هم جمع بشه و از کد زیر استفاده کردم اما همش صفر میشه امکانش هست اینم راهنمایی بفرمایید:
    void SumTextBoxs(object sender, EventArgs e)        {
    sum = 0;
    foreach (Control ctrl in this.Controls)
    {
    if (ctrl is TextBox)
    {
    TextBox t = ctrl as TextBox;
    string sum1 = t.Text;
    lblMablaq.Text = t.Text;
    sum += Convert.ToInt32(sum1.Replace(",", string.Empty));
    }
    //lblMablaq.Text = sum.ToString();
    }
    }


    اینم اضافه کنم که تو فرمم چندین گروپ باکس و تو هر کدوم چندین تکست باکس دارم و تو رویداد leave تکست باکس ها تابع بالا رو فراخوانی کردم

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

  1. سوال: ایجاد یک رویداد برای یک متغیر
    نوشته شده توسط mehdi_79 در بخش VB.NET
    پاسخ: 5
    آخرین پست: شنبه 16 دی 1391, 21:53 عصر
  2. سوال: ایجاد یک Connection برای همه یا Connection به تعداد ؟
    نوشته شده توسط Modifier در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 2
    آخرین پست: شنبه 14 اسفند 1389, 22:30 عصر
  3. درخواست ايجاد يك تالار براي خواندن كتاب ها به طور همزمان توسط اعضاء
    نوشته شده توسط odiseh در بخش گفتگو با مسئولین سایت، درخواست و پیشنهاد
    پاسخ: 1
    آخرین پست: دوشنبه 10 آبان 1389, 12:43 عصر
  4. پاسخ: 4
    آخرین پست: پنج شنبه 11 شهریور 1389, 19:25 عصر
  5. ایجاد یک رشته برای تمام اتصال ها به بانک
    نوشته شده توسط venus2000 در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 9
    آخرین پست: سه شنبه 18 تیر 1387, 09:51 صبح

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

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