PDA

View Full Version : ایجاد خواص DataSource و DataField در User Control



hmbarnamenevis
پنج شنبه 13 شهریور 1393, 13:12 عصر
برای ایجاد دو خاصیت DataSource و DataField برای یک OCX که در User Control می سازیم، چه کدهایی را باید نوشت.
برای خاصیت DataSource یه کارایی رو انجام دادم.

Dim m_Rs As Recordset
'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
'MappingInfo=Text1,Text1,-1,DataSource
Public Property Get DataSource() As Recordset
Set DataSource = m_Rs
End Property

Public Property Set DataSource(ByVal New_DataSource As Recordset)
Set m_Rs = New_DataSource
PropertyChanged "DataSource"
End Property

'Load property values from storage
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)

Set m_Rs = PropBag.ReadProperty("DataSource", Nothing)
End Sub

'Write property values to storage
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)

Call PropBag.WriteProperty("DataSource", m_Rs, Nothing)
End Sub

vbhamed
جمعه 14 شهریور 1393, 19:37 عصر
سلام
راهش يه طور ديگه هستش، از روش معمول ايجاد Property نيست
اينجا رو ببينيد
http://msdn.microsoft.com/en-us/library/aa240780%28v=vs.60%29.aspx

hmbarnamenevis
چهارشنبه 19 شهریور 1393, 15:55 عصر
تمام این راه ها رو رفتم اما باز نمی تونم مثل TextBox این فیلد ها را داشته باشم و بتونم هر جدول و فیلدی را به آنها بایند کنم.
من از شما سوال می کنم اگر بخواهید یک usercontrol ای درست کنید که یک کنترل TextBox است و برای گرفتن اطلاعات از کاربر است و حال علاوه بر امکاناتی که برای آن می گذارید می خواهید امکان اتصال به بانک اطلاعاتی را نیز داشته باشد؛ یعنی خواص DataSource ، DataField و ... را داشته باشد و بتوان آن را به یک RecordSet وصل کرد. من تمام راهنما ها را دیدم ولی دید کلی از چگونه پیاده سازی این خواص را متوجه نشدم و در راهنماها هم یک کد نمونه نتوانستم پیدا کنم. اگر شما تجربه اینگونه پروژه ای را دارید لطفا یک نمونه بگذارید. ممنون

vbhamed
یک شنبه 23 شهریور 1393, 23:49 عصر
سلام
يك يوزر كنترل ايجاد كنيد
يك تكست باكس داخلش بزاريد
به پنجره كد يوزر كنترل بريد
از منوي Tools گزينه Add Procedure رو بزنيد
در قسمت Name نامي دلخواه مثلا Data بنويسيد
گزينه Property رو انتخاب كنيد و Ok رو بزنيد
كدهاي درج شده رو به صورت زير ويرايش كنيد

Public Property Get Data() As Variant

End Property

Public Property Let Data(ByVal vNewValue As Variant)

Text1.Text = vNewValue

End Property

از منوي Tools گزينه Procedure Attributes رو انتخاب كنيد
در قسمت Name همون Data رو انتخاب كنيد
دكمه Advanced رو بزنيد
در بخش Data Binding گزينه اول و دوم رو علامت بزنيد (Property is data bound و This pro....)
Ok رو بزنيد

حالا اگر يك دونه از يوزر كنترلي كه ساختيد روي فرم بزاريد مي‌بينيد خاصيت DataSource و DataField رو داره و مي‌تونيد استفاده كنيد