PDA

View Full Version : اضافه کردن خصوصیت به 1 کنترل



hooooman
چهارشنبه 14 شهریور 1386, 13:50 عصر
سلام
میخاستم بدونم میشه به Property های 1 کنترل خصوصیتی رو اضافه کرد و اگر میشه چطوری؟
مثلا 1 tag به 1 کنترل اضافه کرد و اگر خودش Tag داشت اسم اون خصوصیت رو بذاریم Tag1

hesam_hma
چهارشنبه 14 شهریور 1386, 13:58 عصر
با استفاده از وراثت در کلاس ها می تونی این کار رو بکنی، یعنی یه کلاس جدید ایجاد کنی و از کلمه Inherits و کنترل مورد نظر استفاده کنید سعی می کنم سری بعد یه مثال عملی همینجا بزارم شما هم یه خورده در مورد برنامه نویسی شیء گرا مطالعه کنید

saeed_rezaei
چهارشنبه 14 شهریور 1386, 19:15 عصر
سلام.
همانطور که دوستمون گفتند، شما می تونید با استفاده از وراثت یه کنترل جدید ایجاد کنید که علاوه بر خصوصیات کنترل مادر، خصوصیات خودش رو هم داشته باشه. اما یادتون باشه، خصوصیاتی رو که به ارث می بره، به همین سادگی نمی شه تغییر نام داد. حتی شما نمی تونید خصوصیتی از اون رو حذف کنید، فقط می تونید اون خصوصیت رو غیر فعالش کنید.

حالا برای مثال، می خوایم یه کنترل textbox جدید بسازیم که علاوه بر خصوصیاتی که تا حالا داشته یه خصوصیت جدید با عنوان DeactiveColor هم داشته باشه.
وی بی رو اجرا کنیدو از یک پروژه جدید، از windows control library رو انتخاب کنید تا یه کنترل جدید ظاهر شه.
در صفحه اصلی برنامه، روی منوی view -> code برید. در صفحه کد از لیست بالای صفحه، از قسمت class name گزینه user control1 رو انتخاب و از لیست method name گزینه despose یا initalize component رو انتخاب کنید تا صفحه usercontrol1.designer.vb نمایش داده بشه.
حالا در خط سوم، گزینه زیر رو می بینید:
Inherits System.Windows.Forms.UserControl
این کد مشخص می کنه که کنترل ما از usercontrol ارث برده شده.
حالا اون رو به شکل زیر تغییر بدید:
Inherits System.Windows.Forms.TextBox
و در همین صفحه چنانچه، زیر خطی از کدها، مخصوصا در قسمت
InitializeComponent
خط آبی کشیده شده، اون خط رو حذفش کن. تا error نگیره.
حالا به صفحه کد یعنی usercontrol.vb برگرد و خصوصیت جدید روتعریف کنید.


Dim _deavtivecolor As Color = Color.Coral

Property deactivecolor() As Color
Get
Return _deavtivecolor
EndGet

Set(ByVal value As Color)
_deavtivecolor = value
EndSet
EndProperty

nowar1352
جمعه 31 تیر 1390, 02:21 صبح
دوست عزيز من اينكارو كردم ولي ارور زير رو ميده


تازه تو حالت ديزاين بشكل زير درميآد