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

نام تاپیک: مخفی سازی و unhide رویدادها و خصوصیات در یک UserControl

  1. #1

    Red face مخفی سازی و unhide رویدادها و خصوصیات در یک UserControl

    بعد از ساخت یک UserControl ، به غیر از خصوصیات و رویدادهایی که من واسه UserControl نوشتم خصوصیات و رویدادهای پیش فرضی به صورت اتوماتیک وجود دارد مثل رویداد های مربوط به mouse و یا خصوصیاتی مثل backcolor و...
    * حالا چطوری میشه رویداد های بلا استفاده و یا خصوصیات کم کاربرد در یک UserControl رو مخفی کرد ؟ ( یعنی بعد از ساخت UserControl و استفاده اون در برنامه دیگر ، در حالت Design در پنجره properties این خصوصیات دیده نشه )

    در ضمن من یک رویداد TextChanged واسه UserControl نوشتم که به درستی کار میکند ولی در هنگام استفاده از این UserControl ، این رویداد در پنچره properties در بخش رویداد ها به چشم دیده نمیشود ، چگونه این رویداد را در این پنچره نمایش دهم ؟

    من از این دو نوع کد استفاده کردم ولی بازهم این رویداد از حالت مخفی خارج نشد!
    new public event EventHandler TextChanged;

    public event EventHandler TextChanged;


    البته این مشکل فقط با لفظ TextChanged است یعنی اگر از کلمه دیگری استفاده نماییم ، رویداد مربوطه در پنجره properties نشان داده می شود

  2. #2

    نقل قول: مخفی سازی و unhide رویدادها و خصوصیات در یک UserControl

    دوست عزیز این دستور رویداد پایه شیءرو نادیده گرفته و رویداد شما را در اولویت قرار می دهد . این دستور برای مخفی نمودن در پنجره خاصیت ها و رویداد ها نیست ...

    new public event EventHandler TextChanged;

  3. #3

    نقل قول: مخفی سازی و unhide رویدادها و خصوصیات در یک UserControl

    پس لطف کنید بفرمایید چگونه می توان رویداد ها و خصوصیات رو مخفی کرد یا از حالت مخفی خارج کرد ؟

  4. #4
    کاربر دائمی آواتار Soroush.Sarabi
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    کرج
    سن
    43
    پست
    131

    نقل قول: مخفی سازی و unhide رویدادها و خصوصیات در یک UserControl

    دوست عزیز شما باید از BrowsableAttribute استفاده کنی جهت جلوگیری از نمایش Property ها و event ها.
    ویرایش شده توسط مدیر بخش => مهدی کیانی
    دلیل: حذف مطالبی که به موضوع تاپیک ارتباطی ندارند
    آخرین ویرایش به وسیله Mahdi.Kiani : جمعه 16 مرداد 1388 در 10:53 صبح

  5. #5

    نقل قول: مخفی سازی و unhide رویدادها و خصوصیات در یک UserControl

    با تشکر از دوستان

    میشه لطف بفرمایید و یک کم بیشتر توضیح بدین که به چه شکلی باید از BrowsableAttribute استفاده کرد

  6. #6

    نقل قول: مخفی سازی و unhide رویدادها و خصوصیات در یک UserControl

    سلام دوست عزیز،
    توسط BrowsableAttribute تنها می توانید Property/Event مورد نظر را در پنجره ی Properties Window مخفی نمایید و برنامه نویس هنوز می تواند در Code Editor به آن دسترسی داشته باشد(توجه داشته باشید که در مورد برخی اعضای پیاده سازی شده در چارچوب کاری دات نت، Intellisense آن را نمایش نمی دهد و همچنان در صورت دسترسی به آن با خطا مواجه نخواهید شد، این گونه اعضا دز MSDN بدین گونه شرح داده میشوند:

    This API supports the .NET Framework infrastructure and is not intended to be used directly from your code.
    ،
    دات نت فریم ورک جهت انجام اینکار(مخفی کردن اعضاء در Intellisense) از EditorBrowsableAttribute استفاده می کند، به طور مثال، کلاس PrintPreviewDialog از کلاس Form به ارث گرفته می شود، اما پروپرتی Text مربوط به آن توسط Intellisense نمایش داده نمی شود چون در کلاس Derived به صورت زیر اعلان شده است:

    [Browsable(false)] //[Hiding In Properties Window]
    [EditorBrowsable(EditorBrowsableState.Never)] //[Hiding By Intellisense]
    public override string Text { get; set; }

    شما نمی توانید هنگام ارث بری از کلاس Base، یکی از Public Member های آن را در کلاس Derived مخفی نمایید،(طبق نکات فوق تنها میتوانید آن را در Properties Window و Intellisense مخفی نمایید و همچنان امکان دسترسی به آن وجود دارد) بلکه می توانید پیاده سازی آن را در صورت امکان و آن هم فقط در سطح کلاس Derived تغییر دهید،
    برنامه نوس به هر حال می تواند به اعضای Public کلاس Base دسترسی پیدا کند:

    //--pseudo code--
    //Dervied class is inherited from Base class
    Derived child = new Derived();
    Base parent = (Base)child;
    //Accessing Public Member
    parent.PublicProperty;

    ،/
    آخرین ویرایش به وسیله علیرضا مداح : جمعه 16 مرداد 1388 در 08:15 صبح دلیل: جهت جلوگیری از بروز ابهام برای کاربران نکاتی تصریح/اضافه شد(با تشکر از آقای توکلی)
    I've just started tweeting!
    @Alireza_Maddah

  7. #7

    نقل قول: مخفی سازی و unhide رویدادها و خصوصیات در یک UserControl

    با سپاس فراوان

    دقیقا من به دنبال همین فرِآیندی هستم که جناب آقای مداح فرمودند :
    با BrowsableAttribute می توانید Property/Event مورد نظر را در پنجره ی Properties Window مخفی نمایید
    کلاس که من نوشتم از کلاس UserControl مشتق شده است و من می خواهم بعد از اتمام پروژه ام که خروجی به عنوان یک DLL در برنامه های دیگر مورد استفاده واقع می شود کلیه Property/Event که در کلاس UserControl وجود دارد در پنجره Properties Window نشان داده نشود و فقط Property/Event هایی که من در کلاسم نوشتم در پنجره Properties Window نشان داده شود.

    البته دوستان توجه داشته باشند که من از کد زیر مثلا" برای مخفی کردن ( متد Enter که به صورت پیش فرض در کلاس UserControl وجود دارد ) استفاده کردم
    [Browsable(true)]
    new public event EventHandler Enter;


    ولی این کد دوتا عیب دارد
    1- باید برای تک تک Event ها یا Property ها کلاس UserControl نوشته شود
    2- این کد Warning می دهد چون من در هیچ کجای کلاسم از این متد استفاده نکرده ام

    * حالا من سوالم اینکه چگونه باید کلیه Property/Event موجود در کلاس پدر رو به صورت یکجا مخفی کنم؟

  8. #8

    نقل قول: مخفی سازی و unhide رویدادها و خصوصیات در یک UserControl

    کاربر @Soroush.Sarabi
    هیچ دلیلی وجود نداره که شما در پایان تمامی پست هایتان،مطالبی که درون امضایتان قراردارد را نیز قرار دهید.چون این مطالب هیج ارتباطی با موضوع تاپیک ندارند./
    پست شما در این تاپیک توسط بنده ویرایش شد.
    در صورت تکرار جریمه و درصورت ادامه از سایت اخراج خوهید شد./
    این تذکربه این دلیل به صورت عمومی اعلام شد تا دیگر کاربران هم از این موضوع(قرار ندادن مطالبی در پست که بی ارتباط با موضوع تاپیک می باشد) اطلاع پیدا کنند./
    موفق باشید./

    مجموعه آموزشی Asp.Net Core Mvc کاملا به زبان فارسی(21 ماژول و 15 ساعت فیلم آموزشی همراه با سورس کامل تمرینات و پروژه عملی انجام شده در طول آموزشی)
    مشاهده جزئیات در آدرس http://www.mkiani.ir/blog/content/53084


    وب سایت : http://www.mkiani.ir
    پست الکترونیک : mkiani3000@gmail.com

    موفق و پیروز باشید.
    مهدی کیانی


  9. #9

    نقل قول: مخفی سازی و unhide رویدادها و خصوصیات در یک UserControl

    من هنوز جواب سوالم رو نگرفتم

    چگونه میتوانم کلیه Property/Event موجود در کلاس پدر رو که کلاس فرزند به ارث برده را به صورت یکجا مخفی کنم؟
    منظورم اینکه نخواهم برای هر کدوم از اعضای کلاس پدر [Browsable(false)] رو بنویسم

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

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

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