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

نام تاپیک: متدی به جای متد frm.show

  1. #1

    متدی به جای متد frm.show

    سلام
    دوستان آیا آمکان هست که به جای متدی مثلا متد Show تابعی جایگزین کرد
    و در هر جای برنامه که مینویسم frm.show تابعی دلخواه و دستورات مد نظر اجرا بشه .
    با تشکر

  2. #2
    کاربر دائمی آواتار bachebahal_1363
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    اینترنت
    پست
    336

    نقل قول: متدی به جای متد frm.show

    سوالت یکمی مبهمه
    اگر می خوای تابعی بنویسی ، خوب هر تابعی با هر متد دلخواه و هر اسم دلخواه می تونی بنویسی و محدودیتی در استفاده و الباقی موارد نیست .
    اگر می خوای متد Show فرم رو تغییر بدی فکر نمی کنم امکان پذیر باشه البته من اطلاعی ندارم شاید بشه .

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

    نقل قول: متدی به جای متد frm.show

    اگر منظورتون تغیر متد show() هست میتونید این تابع رو override کنید
    به این صورت :

    protected override void OnShown(EventArgs e)
    {
    // Your Code
    }

  4. #4

    نقل قول: متدی به جای متد frm.show

    درسته ولی با override هم این تابع اجرا میشه و هم تابع اصلی این برنامه رو برای مثال نوشتم
    که میخوام اگر متغیری False بود فرم اصلا باز نشه . ولی چون دستور Show اجرا میشه باید Hide کرد و بازو بسته شدن فرم و از این جور مسال .
    البته این جور کارا با یک تابع کمکی حل میشه ولی مستلزم تغییر همه frm.show به مثلا frm.MySHow
    اگر راهی دیگری هست ممنون میشم موفق باشین


    protected override void OnShown(EventArgs e)
    {
    if (!okSHow)
    {
    this.Hide();
    this.Close();
    }
    }
    فایل های ضمیمه فایل های ضمیمه

  5. #5
    کاربر دائمی آواتار SMRAH1
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    مشهد
    پست
    884

    نقل قول: متدی به جای متد frm.show

    همین فرآیند را درون Form_Load انجام بده به جای OnShown.
    یک راه دیگر هم ایجاد یک تابع دیگر (مثلا MyShow است) و پیاده سازی کد مورد نظر که در صورت نیاز تابع Show رو فراخوانی کند.در این حالت باید در برنامه، هرجا می خواهی از Show استفاده کنی ،از MyShow استفاده کنی.

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

    نقل قول: متدی به جای متد frm.show

    تو این مثالی که گذاشتید ، میشه کارای دیگه ای هم کرد
    مثلا قبل از اینکه فرم رو بخوایم بسازیم و اونرو نمایش بدیم شرط رو چک کنیم
    یا اینکه در رویداد لود فرم دوم این کد رو بنویسیم :
    private void Form2_Load(object sender, EventArgs e)
    {
    if (!okSHow)
    this.Dispose();
    }

  7. #7
    کاربر دائمی آواتار سار
    تاریخ عضویت
    اسفند 1382
    محل زندگی
    تورین-ایتالیا
    پست
    1,044

    نقل قول: متدی به جای متد frm.show

    اگر مفهوم نبود یا سوالی بود در خدمتم
    فایل های ضمیمه فایل های ضمیمه

  8. #8

    نقل قول: متدی به جای متد frm.show

    خوب این برنامه که نوشتین همون مشکلی گفتم رو داره بازو بسته شدن و این مثال همون کدی که بنده گزاشتم با کمی تفاوت
    از سوال خارج شدین بنده برنامه رو گزاشتم برای حالتی که نتوانیم تابع جایگزین بنویسیم مجبوریم مثلا از این کارا کنیم
    سوال اصلی جایگزین کردن تابع به جای Show و تابع Show برای مثال گفتم.

  9. #9
    کاربر دائمی آواتار SMRAH1
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    مشهد
    پست
    884

    نقل قول: متدی به جای متد frm.show

    این برنامه این مورد را داره،به این دلیل که سناریوی زیر را دنبال می کند:
    1) در Form_load مقدار canShow مقدار false می گیرد.
    2) فرم نمایش داده می شود و پیغام OnShown ارسال می شود.
    3) چنانچه CanShow مقدار flase دارد،فرم را مخفی می کند.

    در واقع شما دو راه داریم:
    1) قبل از فراخوانی Show مربوط به فرم (در شی فراخوان فرم)،وضعیت عدم نمایش را تست کنید و در صورت نیاز اصلا فرم را نمایش ندهید.
    2) اگر فرم ،خودش باید تصمیم به نمایش بگیرد،در تابع Form_Load این عمل را انجام دهید (از نمایش فرم جلوگیری کنید، یا کلا آن را close کنید.این فرآیند می توان در تابع سازنده فرم ،حتی قبل از initComponent، انجام شود ).

  10. #10

    نقل قول: متدی به جای متد frm.show

    سلام
    دوست عزیز سناریوی که گفتین قبلا تست کردم امکان نداره و از لحاظ منطقی درسته نیست
    ولی باز هم میگم شما دنبال یک راه حل برای show فرم هستین در صورتی که بنده این رو برای مثال گفتم و سوال اصلی روش جایگزین کردن تابعی برای تابعی از قبل نوشته شده و کامپایل شده است مثل تابع Show وگرنه اون کاری در مثال گفتم در صورت ممکن نبودن این مطلب با یک تابع کمکی دیگر مثل Myshow حل میشه . بنده میخوام بدونم راهی هست برای جایگزینی تابع یا باید تابع جدیدی نوشت .
    متشکر

  11. #11

    نقل قول: متدی به جای متد frm.show

    سلام
    دوستان هیچ راهی برای این موضوع در #C نیست مثلا یه چیزی شبیه به ExtensionMethods
    با تشکر

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

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