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

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

  1. #1
    کاربر دائمی
    تاریخ عضویت
    آبان 1386
    محل زندگی
    قم
    پست
    657

    کدهای متفاوت برای یک رویداد

    سلام دوستان

    فرض کنید من برای رویداد textBox1_TextChanged یک کدی نوشته ام

    و قصد دارم یک کد دیگر بنویسم از قضا که این کد هم باید در رویداد textBox1_TextChanged نوشته شود

    اما من قصد دارم هر کدام در یک TextChanged جدا باشد

    چطور میشه این کار رو کرد؟

  2. #2

    نقل قول: کدهای متفاوت برای یک رویداد

    سلام،اگه منظورتون رو واضح تر بیان کنید،شاید بهتر بتونم کمک کنم...

  3. #3
    کاربر تازه وارد آواتار Mozhdeh.Hemati
    تاریخ عضویت
    آذر 1391
    محل زندگی
    زمین
    سن
    35
    پست
    30

    نقل قول: کدهای متفاوت برای یک رویداد

    سلام،

    به صورت زیر این کار امکان پذیر است:

            private void Form1_Load(object sender, EventArgs e)
    {
    textBox1.TextChanged += new EventHandler(textBox1_TextChanged1);
    textBox1.TextChanged += new EventHandler(textBox1_TextChanged2);
    }

    private void textBox1_TextChanged1(object sender, EventArgs e)
    {
    MessageBox.Show("دستورات بخش اول");
    }

    private void textBox1_TextChanged2(object sender, EventArgs e)
    {
    MessageBox.Show("دستورات بخش دوم");
    }

  4. #4
    VIP آواتار gwbasic
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    سن
    42
    پست
    982

    نقل قول: کدهای متفاوت برای یک رویداد

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

    نقل قول نوشته شده توسط Mozhdeh.Hemati مشاهده تاپیک
    سلام،

    به صورت زیر این کار امکان پذیر است:

            private void Form1_Load(object sender, EventArgs e)
    {
    textBox1.TextChanged += new EventHandler(textBox1_TextChanged1);
    textBox1.TextChanged += new EventHandler(textBox1_TextChanged2);
    }

    private void textBox1_TextChanged1(object sender, EventArgs e)
    {
    MessageBox.Show("دستورات بخش اول");
    }

    private void textBox1_TextChanged2(object sender, EventArgs e)
    {
    MessageBox.Show("دستورات بخش دوم");
    }
    به لحاط فنی Attach کردن چند Handler به یک رویداد امکان پذیر است اما دو مورد رو باید در نظر داشت:
    1- تضمینی به اجرای Handler ها به همان ترتیبی که Attach شده اند وجود ندارد و مهمتر از آن اینکه احتمال اجرای هم زمان وجود دارد.
    2- هندل کردن خطاهای احتمالی و در کل نگهداری کد سخت می شود. چندان عرف نیست که در برای یک رویداد در یک فرم چندین Handler وجود داشته باشد.

  5. #5
    کاربر تازه وارد آواتار Mozhdeh.Hemati
    تاریخ عضویت
    آذر 1391
    محل زندگی
    زمین
    سن
    35
    پست
    30

    نقل قول: کدهای متفاوت برای یک رویداد

    بله با نظر آقای gwbasic موافقم. از این زاویه قضیه رو ندیده بودم!

    پس با این تفاسیر این کار رو به صورت زیر انجام بدید بهتره:

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
    this.commands1();
    this.commands2();
    }

    private void commands1()
    {
    MessageBox.Show("دستورات بخش اول");
    }

    private void commands2)
    {
    MessageBox.Show("دستورات بخش دوم");
    }

  6. #6
    کاربر دائمی
    تاریخ عضویت
    آبان 1386
    محل زندگی
    قم
    پست
    657

    نقل قول: کدهای متفاوت برای یک رویداد

    سلام
    1- قصد داشتم خالی بودن TextBox ها را چک کنم . خب این کار رو با رویداد TextChanged مربوط به تکست باکس 1 انجام دادم
    2- قصد داشتم کاربر فقط عدد در تکست باکس 1 بتونه وارد کنه . بنابراین باید کدها را در رویداد TextChanged مربوط به تکست باکس 1 قرار بدم.

    از طرفی احتمال وجود مشکلاتی که gwbasic فرمودند وجود داشت.

    بنابراین توی کلاس Designer.cs مربوط به فرم، همون قسمتی که خود ویژوال استادیو کدها را Generate می کنه یک رویداد جدید به نام textBox1_TextChanged1 ایجاد کردم .

    textBox1.TextChanged += new EventHandler(textBox1_TextChanged1);


    اما همچنان مشکل وجود داشت .

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

  7. #7
    VIP آواتار gwbasic
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    سن
    42
    پست
    982

    نقل قول: کدهای متفاوت برای یک رویداد

    ببینید هرچی سوالتون رو کاملتر و جامع تر مطرح کنید سریعتر به نتیجه مطلوب می رسید.
    ج1- نمی دونم هدفتون از چک کردن خالی بودن TextBox ها در رویداد TextChanged یک TextBox دیگه چیه؟ معمولا خالی بودن رو هنگام ذخیره تغییرات و Validation نهایی انجام می دن البته سناریو بسیار زیاد هست واستثنا وجود داره در هر صورت منطقتون رو در یک یا چند متد می تونید پیاده سازی کنید تا اصل Dry رو رعایت کرده باشید و کد تکراری ننویسید.
    ج2- برای این منظور هم کافیه یک Inherited control از روی TextBox بسازید با نام NumericTextBox تا فقط عدد وارد شود و باز منطق رو یکبار وفقط در این کنترل بنویسید و بارها ازش استفاده کنید. نمونه برای NumericTextBox زیاد هست نیاز به نوشتن هم نیست می تونید جستجو کنید و کنترلی مناسب نیازتون پیدا کنید

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

  1. تولید کدهای C برای کاربرد embedded در MATLAB
    نوشته شده توسط shaniaki در بخش برنامه نویسی سیستم های Embeded
    پاسخ: 7
    آخرین پست: پنج شنبه 12 دی 1387, 20:30 عصر
  2. هدف از تعریف Delegate چیست(برای ساخت رویداد)
    نوشته شده توسط VisualStudio در بخش C#‎‎
    پاسخ: 1
    آخرین پست: سه شنبه 03 اردیبهشت 1387, 14:59 عصر
  3. دو تا جدول با collation متفاوت برای دو فیلد
    نوشته شده توسط Accidentboy در بخش SQL Server
    پاسخ: 1
    آخرین پست: چهارشنبه 12 دی 1386, 20:21 عصر
  4. host متفاوت برای subdomain
    نوشته شده توسط Nightbat در بخش ASP.NET Web Forms
    پاسخ: 9
    آخرین پست: سه شنبه 17 مهر 1386, 12:48 عصر
  5. تبدیل کدهای vb برای تحت شبکه درآوردن برنامه
    نوشته شده توسط hasiby در بخش برنامه نویسی در 6 VB
    پاسخ: 9
    آخرین پست: دوشنبه 22 آبان 1385, 12:52 عصر

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

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