PDA

View Full Version : حرفه ای: نمایش پراپرتی یا رویداد جدید ایجاد شده برای UserControl در Properties Windows



puvinax
چهارشنبه 10 فروردین 1390, 19:35 عصر
با سلام و ضمن تبریک سال نو به دوستان
سوالی که از اساتید داشتم
فرض کنید که من یک UserControl ایجاد کردم و برای آن پراپرتی و رویداد خاص و جدید نوشتم می خواستم بدونم چطور میشه این موارد رو برای UserControl خودم به Properties Windows در Visual Studio اضافه کنم.

منظورم Override کردن یک مورد خاص نیست که بعد تغییرات قابل استفاده باشه من میخوام موارد جدید رو به پنجره پراپرتی اضافه کنم همین کاری که در Component های تجاری بسیار به چشم میاد.

یک تصویر برای نمونه گذاشتم
ممنون میشم راهنمایی بفرمایید
با آرزوی بهترین ها

Rejnev
چهارشنبه 10 فروردین 1390, 19:53 عصر
public class myUserControl: UserControl
{
Public int MyProp{
get; set;
}
}

puvinax
چهارشنبه 10 فروردین 1390, 21:05 عصر
public class myUserControl: UserControl
{
Public int MyProp{
get; set;
}
}


دوست عزیز ممنون اما من منظورم فقط تعریف یک پراپرتی ساده نبود ! (موردی که بیان کردید درسته اما ...)
من منظورم بحث های خاص تری هستش پراپرتی هایی که گزینه های متفاوت انتخابی دارند مثل خاصیت Dock و یا به صورت لیست هستند
یا حتی خاصیت هایی که دسته بندی دارند مثل Font

*** همین پراپرتی که شما نوشتید در بخش Misc پنجره قرار میگیرد اگر بخواهم مکان مناسب دسته بندی آنرا مشخص کنم چه باید کرد ؟!

در کل خواهشمندم مطالب جامع تری (حتی اگر میشه مقاله یا نمونه) ارائه بفرمایید
با تشکر

exlord
چهارشنبه 10 فروردین 1390, 21:37 عصر
http://msdn.microsoft.com/en-us/library/a19191fh.aspx
public class MyControl : UserControl
{
[Browsable(true)]//age False bashe tu property grid neshun nemide
[DefaultValue(10)]
[Category("MyCategory")]//dasteyi ke tush garar migiri tuye property grid
[Description("This is a property")]//tozihat
[ReadOnly(false)]
[ParenthesizePropertyName(true)]//esmeshu tuye parantez neshun mide
public int MyProperty { get; set; }
}


اینم برای نشون دادن پراپرتی ها به کاربر ...
PropertyGrid g = new PropertyGrid();
g.Width = 200;
g.Height = 300;
this.Controls.Add(g);


g.SelectedObject = new MyControl();

shadi khanum
پنج شنبه 11 فروردین 1390, 00:25 صبح
اون پراپرتی هایی که امکان انتخاب کمبویی دارن از نوع یه Enumeration هستن که خود developer تو usercontrol ایجاد کرده.اگه میخوای کمبو نشون بده باید یه enum تعریف کنی و نوع بازگشتی property رو از اون enum بذاری

puvinax
پنج شنبه 11 فروردین 1390, 00:55 صبح
http://msdn.microsoft.com/en-us/library/a19191fh.aspx
public class MyControl : UserControl
{
[Browsable(true)]//age False bashe tu property grid neshun nemide
[DefaultValue(10)]
[Category("MyCategory")]//dasteyi ke tush garar migiri tuye property grid
[Description("This is a property")]//tozihat
[ReadOnly(false)]
[ParenthesizePropertyName(true)]//esmeshu tuye parantez neshun mide
public int MyProperty { get; set; }
}


اینم برای نشون دادن پراپرتی ها به کاربر ...
PropertyGrid g = new PropertyGrid();
g.Width = 200;
g.Height = 300;
this.Controls.Add(g);


g.SelectedObject = new MyControl();


دوست عزیز خیلی خیلی ممنونم دقیقا همین رو میخواستم ، متشکرم
یک سوال دیگه اینکه در مورد رویداد ها هم همین مورد صادقه ؟ شیوه ی نمایش آنها هم به همین ترتیبه ؟

بعلاوه میخواستم بدونم غیر از گزینه های پراپرتی و رویداد امکان اضافه کردن بخش دیگه ای هم به Properties Windows در Visual Studio وجود دارد یا نه ؟ (مثلا امکانات دیگری رو در بخش ثالثی تحت عنوان خاص دیگری قرار دهیم)

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

exlord
پنج شنبه 11 فروردین 1390, 10:52 صبح
دوست عزیز خیلی خیلی ممنونم دقیقا همین رو میخواستم ، متشکرم
یک سوال دیگه اینکه در مورد رویداد ها هم همین مورد صادقه ؟ شیوه ی نمایش آنها هم به همین ترتیبه ؟
بعلاوه میخواستم بدونم غیر از گزینه های پراپرتی و رویداد امکان اضافه کردن بخش دیگه ای هم به Properties Windows در Visual Studio وجود دارد یا نه ؟ (مثلا امکانات دیگری رو در بخش ثالثی تحت عنوان خاص دیگری قرار دهیم)
با سپاس فراوان

[Category("MyEvents")]
[Description("Fires MyEvent")]
public event SomeEventHandler SomeEvent;

برای خود کلاس هم میشه اینارو نوشت :
[DefaultEvent("Click"),//evente pish farz be mahze raftan be safheye event ha in event focus mishe
DefaultProperty("MyProperty")]//property pish farz ke focus shode
public class MyControl