PDA

View Full Version : سوال: چطور می شه یک رویداد رو توی قسمت component نویسی در VB.NET حذف کرد



ms_vb1987
یک شنبه 16 مرداد 1390, 00:36 صبح
سلام
کسی می دونه چطور می شه یک رویداد رو توی قسمت component نویسی حذف کرد
من می خواستم یک Component بسازم که از usercontrol ارث می بره بعضی از رویدادهاش بدردم نمیخوره مثل رویداد load چطور میتونم حذفش کنم؟ کاری کنم که جز رویدادهای شی ای که ساختم نباشه؟

Mani_rf
یک شنبه 16 مرداد 1390, 09:55 صبح
سلام. تو UserControl اون پروپرتی که می خوای نباشه رو Override می کنی، بعد با استفاده از خاصیت Browsable اون را حذف می کنید. به این شکل :

<System.ComponentModel.Browsable(False)>
Public Overrides Property AutoScroll As Boolean
Get
Return MyBase.AutoScroll
End Get
Set(ByVal value As Boolean)
MyBase.AutoScroll = value
End Set
End Property
<System.ComponentModel.Browsable(False)>
Public Overrides Property AutoSize As Boolean
Get
Return MyBase.AutoSize
End Get
Set(ByVal value As Boolean)
MyBase.AutoSize = value
End Set
End Property
<System.ComponentModel.Browsable(False)>
Public Overrides Property BackColor As System.Drawing.Color
Get
Return MyBase.BackColor
End Get
Set(ByVal value As System.Drawing.Color)
MyBase.BackColor = value
End Set
End Property

ms_vb1987
یک شنبه 16 مرداد 1390, 10:44 صبح
ممنون از جواب خوبت
ولی من می خواهم Event ها رو حذف کنم.

Mani_rf
یک شنبه 16 مرداد 1390, 10:52 صبح
:متفکر: خب Event رو هم میشه Overide کرد

ms_vb1987
یک شنبه 16 مرداد 1390, 10:56 صبح
چطور؟
هرکار میکنم نمیشه:گریه:
ایراد میگیره:افسرده:

Mani_rf
یک شنبه 16 مرداد 1390, 11:06 صبح
ببخشید، من اون اول سوالت را درست نخوندم. اینطوری باید جواب بده :
<System.ComponentModel.Browsable(False)>
Protected Overrides Sub OnAutoSizeChanged(ByVal e As System.EventArgs)
MyBase.OnAutoSizeChanged(e)
End Sub

ms_vb1987
یک شنبه 16 مرداد 1390, 12:33 عصر
من این کد رو برای رویداد Load اینطوری نوشتم:

<System.ComponentModel.Browsable(False)>
Protected Overrides Sub load(ByVal sender As System.Object, ByVal e As System.EventArgs)

MyBase.OnLoad(e)

End Sub
این ایراد رو میگیره:


Error 2 sub 'load' cannot be declared 'Overrides' because it does not override a sub in a base class.

اونو به کد زیر هم تغییر دادم:


Protected Overrides Sub onload(ByVal sender As System.Object, ByVal e As System.EventArgs)

MyBase.OnLoad(e)

End Sub


بازهم همون ایراد رو میگیره
ممنون از راهنماییات:لبخندساده: