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

نام تاپیک: فراخوانی دو تابع متفاوت در دو UserControl تو در تو

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

    فراخوانی دو تابع متفاوت در دو UserControl تو در تو

    در برنامه ای از یک UserControl در UserControl دیگری استفاده کرده ام. و هر دوی آنها را در یک فرم قرار داده ام. UserControl1 دارای دکمه هایی است که یکی از آنها برای عملیات Save مورد استفاده قرار میگیرد. چگونه می توانم عملیات Save را هم در فرمی که هر دو UserControl قرار دارند و هم در UserControl2 مورد استفاده قرار بدم. به طور دقیقتر این که از Delegate ها برای فراخوانی متدهای مورد نظر استفاده کرده ام. حال قصد دارم پیش از ذخیره سازی داده ها، ابتدا محتوای فیلدهای موجود در UserControl2 مورد بررسی قرار گیرد و پس از ان داده های در تابعی به نام Save در فرم اصلی ذخیره شوند. اگر به شکل توجه کنید، می خوام بعداز کلیک روی Save Button، ابتدا تابع Function1_UserConrol2 و سپس Function2_MainForm فراخوانی بشه.
    Main form.jpg
    با تشکر
    آخرین ویرایش به وسیله piroozman : شنبه 16 شهریور 1398 در 11:52 صبح

  2. #2

    نقل قول: فراخوانی دو تابع متفاوت در دو UserControl تو در تو

    سلام Event بساز برای uc2 که تابع save از uc1 رو اجرا کنه تمومش کن بره پی کارش!

  3. #3
    کاربر دائمی آواتار piroozman
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    سن
    44
    پست
    214

    نقل قول: فراخوانی دو تابع متفاوت در دو UserControl تو در تو

    سلام. این کار رو کردم. بی انصاف اول میره تابع موجود در Main Form را فراخوانی میکنه بعد میره سراغ رویداد موجود در Usercontrol2. در حالی که میخوام اول تابع موجود در UC2 فراخوانی بشه.

  4. #4
    کاربر دائمی آواتار piroozman
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    سن
    44
    پست
    214

    نقل قول: فراخوانی دو تابع متفاوت در دو UserControl تو در تو

    یعنی کسی بلد نیست؟ یا نمیشه این کار رو کرد؟ ای خدا ...

  5. #5

    نقل قول: فراخوانی دو تابع متفاوت در دو UserControl تو در تو

    یک کد مثال از چیزی که ساختید بزارید و بگید چه انتظاری دارید.


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

    نقل قول: فراخوانی دو تابع متفاوت در دو UserControl تو در تو

    نقل قول نوشته شده توسط Mahmoud.Afrad مشاهده تاپیک
    یک کد مثال از چیزی که ساختید بزارید و بگید چه انتظاری دارید.
    هر چند فکر میکنم پست اول کاملا واضح هستش ولی سعی می کنم مشکلم رو به صورت کامل شرح بدم. از UC1 یا همان User Control 1، فقط به عنوان ابزاری برای ویرایش، حذف یا ذخیره داده ها استفاده می کنم که اسم اون رو ToolBox گذاشتم که یکی از دکمه های آن، دکمه تایید برای ذخیره سازی داده ها هستش که در شکل Save Button نامگذاری شده است. از این ابزار در ابزاری دیگه ای مانند uc2 یا حتی در فرم های اصلی برنامه به صورت مستقل استفاده می کنم. در uc2 فیلدهایی برای ورود داده ها توسط کاربران تعبیه شده که می توان از اون در قسمت های مختلف برنامه استفاده کرد. حال uc1 رو داخل uc2 قرار دادم که عملکرد uc2 رو با اون کنترل کنه (ویرایش، حذف و به روز رسانی). حال uc2 عملا از یه سری کنترل مانند تکس باکس و دکمه تشکیل شده (برای ورود داده ها) و یک جعبه ابزار که خودش یک uc هستش که اسمش رو گذاشتیم uc1. از uc2 در قسمت های مختلف برنامه استفاده می کنم. حالا میخوام وقتی کاربر روی دکمه Save کلیک میکنه اول اعتبار سنجی داده های ورودی انجام بشه. میخوام این اعتبار سنجی در uc2 انجام بشه و مجبور نباشم هر جا که از این uc2 استفاده می کنم بخوام کدها رو تکرار کنم. و بعد از اعتبار سنجی، عملیات اصلی Save فراخوانی بشه. برای Save داده ها از Delegate به شرح کد های زیر استفاده کرده ام.
    در User Control 1 یا همون Toolbox:

    public Delegate SaveDelegate;
    private void SaveButton_Click(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
    {
    SaveDelegate.DynamicInvoke();
    }

    توجه داشته باشید، چون در بعضی از فرم های برنامه از uc1 به صورت مستقل استفاده کرده ام، استفاده از کد فوق در این user control الزامی است.
    به منظور اعتبار سنجی در User Control 2 نمیدونم چی بنویسم!!!

    //I need some code to validate fields in user control 2

    در Main Form که از UC2 استفاده کرده ام. برای فراخوانی رویداد SaveButton_Click به صورت زیر کد نوشته ام:

    public delegate void SaveDelegate();
    private event SaveDelegate saveEvent;
    public MainForm()
    {
    InitializeComponent();
    saveEvent += new SaveDelegate(Save);
    UserControl2.toolboxUserControl1.SaveDelegate = saveEvent;
    }
    private void Save()
    {
    //Do something
    }
    آخرین ویرایش به وسیله piroozman : دوشنبه 18 شهریور 1398 در 09:32 صبح

  7. #7

    نقل قول: فراخوانی دو تابع متفاوت در دو UserControl تو در تو

    اگر toolboxUserControl1 را private کنید اونوقت متوجه میشید که باید چه کنید.
    یک Delegate در uc2 نیاز دارید. توی این دلیگت اول اعتبارسنجی کنید و بعد دلیگت uc1 را فراخوانی کنید. در فرم هم از دلیگت/رویداد uc2 استفاده کنید.

  8. #8
    کاربر دائمی آواتار ebrahim.rayatparvar
    تاریخ عضویت
    آبان 1392
    محل زندگی
    192.168.1.1
    پست
    663

    نقل قول: فراخوانی دو تابع متفاوت در دو UserControl تو در تو

    شما کیگید دکمه save تو user control1 هست. پس برای اینکه از user control2 بهش دسترسی داشته باشی پس برای user control 1 یک event برای کلیک دکمه بساز و تو user control2 اونو فراخوانی کن.

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

  1. Select زدن تو در تو جمع ستون ها با شروط متفاوت
    نوشته شده توسط kitcat_m18 در بخش T-SQL
    پاسخ: 1
    آخرین پست: یک شنبه 17 خرداد 1394, 17:38 عصر
  2. چرا نمیشه تغییرات تو طراحی جداول رو تو 2012 SQL Server ذخیره کرد? تو قسمت tools>option تغییر دادم
    نوشته شده توسط Mofid.m در بخش مدیریت دیتابیس (Database Administration)
    پاسخ: 1
    آخرین پست: چهارشنبه 03 دی 1393, 20:12 عصر
  3. پاسخ: 0
    آخرین پست: سه شنبه 02 دی 1393, 20:59 عصر
  4. سوال: جستجو تو فیلد در یک دیتابیس(تو در تو)
    نوشته شده توسط Masoudse7en در بخش VB.NET
    پاسخ: 1
    آخرین پست: یک شنبه 15 بهمن 1391, 19:07 عصر
  5. پاسخ: 4
    آخرین پست: چهارشنبه 24 شهریور 1389, 15:32 عصر

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

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