PDA

View Full Version : سوال: چطور می توان خصوصیت یا متودی را مخفی نمود



rasol_afkham
یک شنبه 25 آبان 1393, 15:56 عصر
با سلام خدمت دوستان::لبخند:
من با استفاده از User Control یک کامپوننت ایجاد نموده ام. حال چطور می توانم بعضی از خصوصیات که به صورت پیش فرض User Control دارد را حذف کنم؟ :متفکر:

محمد آشتیانی
یک شنبه 25 آبان 1393, 16:12 عصر
سلام
شما کافیه پراپرتی مورد نظرت رو Override کنی و خاصیت Browsable اون پراپرتی رو false کنی

اینجا برای مثال پراپرتی AllowDrop دیگه جزو پراپرتی های کنترل نمایش داده نمیشه


[Browsable(false)]
public override bool AllowDrop
{
get
{
return base.AllowDrop;
}
set
{
base.AllowDrop = value;
}
}



موفق باشید

rasol_afkham
یک شنبه 25 آبان 1393, 16:22 عصر
این کار رو درباره توابع هم می توان انجام داد. برای مثال کلاسی ایجاد نموده ایم که از کلاسی دیگر ارث بری می کند. اما می خواهم بعضی از توابع را ارث بری نکند.

rasol_afkham
یک شنبه 25 آبان 1393, 16:30 عصر
این کدها رو در قسمتی که خصوصیات کامپوننت ام رو تعریف کردم قرار دادم و پروژه رو (Build) کردم ،اما خصوصیت از لیست خصوصیات حذف نشد. از داخل پانل خصوصیات حذف شد، اما وقتی در قسمت کد نویسی نام کنترل را می نویسی . نقطه قرار می دهی در لیستی که باز می شود هنوز نام خصوصیت قرار دارد. آیا می توان از داخل آن لیست هم خصوصیت را حذف نمود. در مورد رویداد و متد چطور؟

مهرداد صفا
یک شنبه 25 آبان 1393, 18:57 عصر
سلام.

در این صورت می تونید از EditorBrowsable استفاده کنید:


[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
public void test()
{ }
}



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

rasol_afkham
یک شنبه 25 آبان 1393, 20:21 عصر
(البته فقط در زمانی که به اسمبلی شما رجوع بشه عمل می کنه)
این جمله رو می شه بیشتر توضیح بدی؟

مهرداد صفا
دوشنبه 26 آبان 1393, 07:50 صبح
(البته فقط در زمانی که به اسمبلی شما رجوع بشه عمل می کنه)
این جمله رو می شه بیشتر توضیح بدی؟

اگر پروژه شما به صورت یک DLL و یا Exe کامپایل بشه و بعد در یک پروژه دیگه به عنوان reference مورد استفاده قرار بگیره، اعضایی که با این attribute مشخص کردید در IntelliSense نمایش داده نخواهد شد.

rasol_afkham
سه شنبه 27 آبان 1393, 01:12 صبح
تشکر از جواب:تشویق: یه سوال دیگه هم داشتم؟

اگر برنامه رو کامپایل کنیم و تبدیل به یه فایل exe بشه، آیا می توان از اون به صورت یک dll در پروژه های دیگه استفاده نمود؟ اگر بله چطور؟:متفکر:

مهرداد صفا
چهارشنبه 28 آبان 1393, 20:33 عصر
سلام.
بله. هیچ فرقی نداره، به همون صورت که از DLL ها به عنوان Reference استفاده می کنید می تونید از اسمبلی های اجرایی با فرمت exe هم استفاده کنید.