PDA

View Full Version : سوال: چطور میشه از اشیا ارث بری کرد؟؟



oliya24
دوشنبه 14 شهریور 1390, 03:07 صبح
سلام من چطور میتونم از یه کنترل مثلا دکمه یا تکس باکس یا هرچیزی ارث بری کنم من یکم تازه واردم میشه
چند مثال همراه بزنید و توضیح بدید مشکل اینه که من نمیدونم کد رو اصلا کجا بنویسم دوستان عاجزانه طلب کمک دارم
خواهشا تنهام نگذارید

Mani_rf
دوشنبه 14 شهریور 1390, 10:22 صبح
خیلی ساده :
یک کلاس میسازید و بعد از نام کلاس کلمه کلیدی Inherits و بعد شی که می خواهید از آن ارث ببرید.


مثال :

Public Class ViewMesseges
Inherits System.Windows.Forms.TextBox

oliya24
دوشنبه 14 شهریور 1390, 12:10 عصر
جناب mani من خیلی تازه کارم میشه یه مثال خیلی ساده از یه کنترل ساده برام بزنید منظورم اینه که کدش رو تماما بنویسید چون من دقیقا نمیدونم باید چکار کنم

Mani_rf
دوشنبه 14 شهریور 1390, 12:19 عصر
قسد جسارت ندارم اما راستش اگر اینقدر تازه کاری که تجربه کار با کلاس ها را نداری بهتره که از موارد پایه تری شروع کنی، این مباحث یکمی پیچیده اند اما با این حال یک مثال برات میگذارم :
این یک تکس باکسه که موقعی که فکوس میگیره رنگش عوض میشه :

Public Class MyTextBox
Inherits System.Windows.Forms.TextBox

Protected Overrides Sub OnGotFocus(e As System.EventArgs)
MyBase.OnGotFocus(e)
Me.BackColor = Drawing.Color.LightBlue
End Sub

Protected Overrides Sub OnLostFocus(e As System.EventArgs)
MyBase.OnLostFocus(e)
Me.BackColor = Drawing.Color.White
End Sub

End Class


توضیح :
خیلی ساده؛ یک کلاس خالی ایجاد شده و در خط دوم از TextBox ارث برده شده؛
بعد دو رخداد GotFocus و LostFocus سربازگزاری (Over Ride) شده ؛ به این معنی که علاوه بر همه کارهایی که در این رخداد انجام میگیره عمل کرد های دیگری هم به اون اضافه شده .
و در اون ها هم رنگ پس زمینه به آبی تغییر و در هنگام خارج شدن کنترل از فکوس رنگ دوباره به سفید تغییر رنگ داده میشه.

oliya24
دوشنبه 14 شهریور 1390, 12:55 عصر
دست شما درد نکنه من کار با کلاسها رو تازه شروع کردم در مورد سطح دسترسی ها وچیزهای دیگه که همانطور که اشاره فرمودید این بحث خیلی پیچیده است من تازه دارم کار میکنم و خواستم معنی و مفهوم اصلی وراثت گیری از کنترلها رو یاد بگیرم
دوباره تشکر میکنم از شما به خاطر مثالی که فرمودید

oliya24
دوشنبه 14 شهریور 1390, 13:19 عصر
سلام و خسته نباشید بنده این کد رو نوشتم اما هیچ اتفاقی نیافتاد میشه راهنمایی بفرمایید من با هیچ گونه خطایی هم مواجه نشدم
public calaa n
inherits system.windows.forms.textbox
protected overrides sub ongotfocus(e as system.eventargs)
my base.ongotfocus(e)
me.back color=color.blue
end sub
end class

من این کد رو بدون هیچ گونه غلط نوشتم ولی اجا نشد در ضمن معنی این قطعه کد چیه؟؟؟
my base.on gotfocus(e)
ممنون که کمک میکنید
من رو ببخشید

oliya24
دوشنبه 14 شهریور 1390, 17:11 عصر
دوستان خواهشا من رو یاری بفرمایید
خواهش میکنم

Mani_rf
سه شنبه 15 شهریور 1390, 09:58 صبح
سلام و خسته نباشید بنده این کد رو نوشتم اما هیچ اتفاقی نیافتاد میشه راهنمایی بفرمایید من با هیچ گونه خطایی هم مواجه نشدم
public calaa n
inherits system.windows.forms.textbox
protected overrides sub ongotfocus(e as system.eventargs)
my base.ongotfocus(e)
me.back color=color.blue
end sub
end class

من این کد رو بدون هیچ گونه غلط نوشتم ولی اجا نشد در ضمن معنی این قطعه کد چیه؟؟؟
my base.on gotfocus(e)
ممنون که کمک میکنید
من رو ببخشید

این کار برای شما یک کنترل میسازه که باید این کنترل ایجاد شده را روی صفحه قرار بدین، احتمالا شما یک تکس باکس معمولی را گزاشتن برای همین تغییری ندیدینم.

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