افزونه 1 نمایش و مخفی کردن یک Property در Vb.net

ms_vb

Member
بازهم سلام
چطور میشه نمایش بعضی از Property های یک شی رو به مقدار یه Property حساس کرد؟
مثال اگر مقدار ShowForm = True بود MyForm نمایش داده بشه در غیر اینصورت نمایش داده نشه
ممنونم از راهنمایی های شما
 

the_king

مدیرکل انجمن
بازهم سلام
چطور میشه نمایش بعضی از Property های یک شی رو به مقدار یه Property حساس کرد؟
مثال اگر مقدار ShowForm = True بود MyForm نمایش داده بشه در غیر اینصورت نمایش داده نشه
ممنونم از راهنمایی های شما

اگه قراره موقعی که مقدار ShowForm رو True کردید بلافاصله MyForm نمایش داده بشه، داخل بلوک Set در Property ئه ShowForm شرط کنید که
اگر مقدار پارامتر Value برابر True بود فرم رو نشون بده :
کد:
    Public Property ShowForm() As Boolean
        Get
            Return mShowForm
        End Get
        Set(ByVal value As Boolean)
            If value AndAlso (mShowForm = False) AndAlso (mMyForm IsNot Nothing) Then
                mMyForm.ShowDialog(FindForm())                
            End If
            mShowForm = value
        End Set
    End Property
 

ms_vb

Member
ممنون از جوابتون
منظورم در محیط Design بود یه چیزی تو مایه های Column در DataGridView که اگه نوعش رو (ColumnType) مثلا "DataGridViewCheckBoxColumn" انتخاب کنیم تنظیمات مربوط به Check Box رو نشون میده و اگر اون رو تغییر بدیم لیست Property ها تغییر میکنه و Property های مربوط به (ColumnType) به نمایش در میاد
 

the_king

مدیرکل انجمن
ممنون از جوابتون
منظورم در محیط Design بود یه چیزی تو مایه های Column در DataGridView که اگه نوعش رو (ColumnType) مثلا "DataGridViewCheckBoxColumn" انتخاب کنیم تنظیمات مربوط به Check Box رو نشون میده و اگر اون رو تغییر بدیم لیست Property ها تغییر میکنه و Property های مربوط به (ColumnType) به نمایش در میاد

اون پنجره Property ویژوال استدیو نیست، یک کنترل PropertyGrid ئه، هر Property خاصی رو میشه داخلش نشون داد یا مخفی کرد. برای نمایش دادن اون فرم هم از ActionList استفاده کرده اند
که قبلا در موردش پرسیده بودید. شما می توانید در کنترل PropertyGrid هر مشخصه ای رو که خواستید نشون بدید. شبیه پنجره Properties هست اما کد نویسی اش کار کمی می بره.
 

ms_vb

Member
آها پس در
Property ویژوال استدیو این امکان نیست؟بازهم ممنونم از صبر و حوصلتون به خاطر پاسخگویی به سوالاتم
 

the_king

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

نگفتم امکان اش نیست، گفتم اگه از PropertyGrid استفاده کنید کد نویسی اش کار کمتری می بره.
اگه شما در یک کلاس ساختار ICustomTypeDescriptor رو بکار ببرید، با کد نویسی در زمان اجرا به ویژوال استدیو اعلام می کنید که این کلاس چه ساختاری داره، چه Property هایی داره و ...

مثال کاملی نیست، اما نشون میده که چطور در زمان طراحی فرم تعداد Property هایی که ویژوال استدیو نشون میده تغییر می کنه. یک کلاس Class1 داریم که پایین فرم
جزو Component ها یک نمونه Class11 اش قرار گرفته. در ظاهر دو مشخصه اضافی UseXYZ و XYZ داره. اما اگر مشخصه UseXYZ اش رو False کنید، مشخصه XYZ حذف میشه و
دیگه در لیست پنجره Properties نیست :

مشاهده پیوست HidePropertyInRuntime.zip

جلوی ذخیره شدن XYZ رو گرفته ام چون اگر بخواهید وقتی UseXYZ برابر False است ذخیره اش کنید، ویژوال استدیو پیغام خطا میده که Class1 همچین مشخصه ای نداره.
 

ms_vb

Member
خیلی خیلی ممنون استاد گرامی، خدا خیرت بده

فقط یه سوال خط زیر باعث غیر فعال سازی ذخیره شدن XYZ میشه؟
کد:
[COLOR=green]<DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> _[/COLOR]
 

the_king

مدیرکل انجمن
خیلی خیلی ممنون استاد گرامی، خدا خیرت بده

فقط یه سوال خط زیر باعث غیر فعال سازی ذخیره شدن XYZ میشه؟
کد:
[COLOR=green]<DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> _[/COLOR]

بله، ویژوال استدیو مشخصه هایی که این صفت DesignerSerializationVisibility.Hidden رو دارند رو در هنگام ذخیره کردن مقادیر نادیده می گیره.
 

جدیدترین ارسال ها

بالا