سلام مي خوام امروز با هم يه يوزر كنترل بسازيم يه ActiveX

اكتيوايكس چيه:اكتيوايكس يه سري شيئي هستند كه كاربرايي كه خلاق وبا استعداد هستند و به كنترل هاي خود وي بي قانع نيستند مي سازند

مثلآ كنترل كامند باتون رو يه نفر از يه سري عكس و ليبل ساخته.اگه پست من درباره كلاس رو خونده باشيد امروز كارتون يه خورده راحت تر مي شه

براي اينكه يه دفه وارد ساخت بك كنترل تمام اكتيو ايكس نشويم و گام به گام پيش بريم اول يه اكتيوايكس ساده مي سازيم

يه پروژه خالي ايجاد كنيد.از منوي پروژه گزينهAdd User Controlرو بزنيد و در كادر باز شده اوكي رو بزنيد

صفحه كه باز شده شبيه به يه فرم بدون منو هست.اونو كوچيك كنيد كه اندازه يه ليست بوكس بشه بعد يه كامند داخلش بزارين .اسم يوزر كنترل رو به اسم

دلخواهتون تغيير بدين تا در استفاده نام اون كنترل بشه مثلآ اسم Commandاسم مناسبيه

در قسمت كد يوزر كنترل كد هاي زير رو بنويسيد

Option Explicit

'----------تعريف رويداد-----------------

Public Event Click()'x

Public Event Move(Button As Integer,Shift As Integer,X as Single,Y As Single)'x

'--------اگر رويدادي به صورت محلي(Private)تعريف بشه توليد خطا مي كنه

Dim X1!,Y1!,Can As Boolean

'--------تعريف خاصيت(Property)براي فهم دقيق مراجعه شود به پست كلاس چيست

Public Property Let Width1(Value As Integer)'x

'-------Let يعني تعيين كردن اين خاصيت براي تعيين عرض از سوي كاربر مي باشد

If Value >100 then Command1.Width=Value

End Property

Public Property Get Width1() As Integer

'به شكل تعريف اين دو متتد از يك خاصيت توجه كنيد---Getبراي فرستادن مقدار عرض موجود به درخواست كاربر مي باشد

Width1=Command1.Width

End Property

اين خاصيت ها فعلآ در كد نويسي قابل دسترسي مي باشد نمايش آن در پنجره خصوصيات را بعدآ مي گم

Private Sub Command1_MouseDown(Button%,Shift%,X!,Y!)'x

X1=X:Y1=Y:can=True

End Sub

Private Sub Command1_Click()'x

'-------صدا زدن رويدادي كه ايجاد كرديم-------

RaiseEvent Click() 'x

End Sub

Private Sub Command1_MouseMove(Button%,Shift%,X!,Y!)'x

If can=true then call Command1.move((command1.Left+X)-X1,(Command1.Top+Y)-Y1)'x

'-------صدا زدن رويدادي كه ايجاد كرديم-------

RaiseEvent Move(Button,shift,X,Y) 'x

End sub

Private Sub Command1_MouseUp(Button%,Shift%,X!,Y!)'x

Can=False

End sub

Private Sub UserControl_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)'x
UserControl.BackColor = Ambient.BackColor
'-----Ambientيعني فرمي كه يوزر كنترل روي آن طراحي شده است
Command1.BackColor = Ambient.BackColor
End Sub

حالا تمام پنجره هاي مر بوط به يوزر كنترل راببنديد.فرم را باز كرده آيكوني كه در انتهاي ليست ابزار مشاهده مي كنيد يوزر كنترل طراحي شده ي شماست

حالا يك عدد از آن را روي فرم درج كنيد و به اندازه ي نصف فرم بزرگش كنيد.

در رويداد moveمريوط به يوزر كنترل كه بالا آن را تعريف كريم كد زير را بنويسيد

Me.Caption = UserControl1.Width1
UserControl1.Width1 = X + 100

حالا اگر تمام مراحل را درست انجام داده با شيد باتكان دادن ماوس روي دكمه سايز آن تغيير مي كند ومي توانيد با كشيدن و رها كردن موقعيتش را تغيير دهيد

براي بهتر شدن اين پروژه بايد روي آن كار كنيد .نظر بدين سوال بپرسين وباي